Можно ли в AxonFramework ожидать команды отправки от не-аксонного класса? - PullRequest
1 голос
/ 13 июля 2020

Предположим, у меня есть классы, которые не являются классом аксонов (et c. Saga или agrgregate), и если я хочу, чтобы он отправлял команду, я мог бы использовать командный шлюз, но вот в чем проблема. Я хочу написать модульное тестирование, чтобы убедиться, что этот не-аксон-класс уже отправил команду. Итак, если это либо сага, либо агрегат, я мог бы использовать фикстуру, а затем дать команду или событие, но можно ли использовать фикстуру и с этим не-аксонным классом. Вот как выглядит код

class MyService {
    //...
    lateinit var commandGateway: CommandGateway
    fun doSomething(command: doSomethingCommand){
        commandGateway.send(command)
    }
}

class MyServiceTest {
    //...
    @Test
    fun doSomething_ShouldDispatchDoSomethingCommand(){
        // expect dispatch command from non axon-class
    }
}

1 Ответ

1 голос
/ 13 июля 2020

Как вы заметили, Axon Framework предоставляет средства тестирования для агрегатов и саг, без указания каких-либо дополнительных параметров по этому вопросу. AggregateTestFixture предоставляет один метод в соответствии с вашими требованиями, а именно AggregateTestFixture#registerAnnotatedCommandHandler. Однако это нужно для проверки компонента, содержащего @CommandHandler аннотированные методы, а не для проверки отправки.

Таким образом, я думаю, что наиболее простой подход - это имитировать или шпионить за CommandGateway / CommandBus, чтобы сделать проверка, если честно.

...