Как написать модульные тесты MassTransitStateMachine?
Наконец-то я начинаю использовать превосходные компоненты Automatonymous в MassTransit, и я бы хотел пройти через мой новый конечный автомат.
Прочитав здесь документы по MT ( http://masstransit-project.com/MassTransit/advanced/sagas/automatonymous.html) и потратив некоторое время на поиск в Google, я нашел модульные тесты прямо в репозитории MT/Automatonymous Git, который выглядел как путь:
В частности, _machine.RaiseEvent(....)
Метод, казалось, был именно тем, что мне нужно, чтобы иметь возможность управлять конечным автоматом с помощью тестовых стимулов.
Затем я отправился на охоту за этой перегрузкой... Оказалось, что это метод расширения, который, кажется, живет здесь:
Вот где я застрял. Я не уверен, что правильно использовать эти методы расширения для тестирования? *.tt - это формат шаблона генерации текста... Установлены ли они как часть пакета nuget? Как получить доступ к расширениям? и / или в более широком смысле, каков рекомендуемый способ написания модульных тестов для конечных автоматов, наследуемых от MassTransitStateMachine<T>
?
Дополнительный вопрос здесь: Как успешно управлять MassTransitStateMachine через InMemoryTestHarness?
1 ответ
Тест, на который вы ссылаетесь, не из MassTransit, а из библиотеки Automatonymous, которая не является частью MassTransit.
То, что вы ищете, можно найти здесь:
- Конечный автомат саговых испытаний с использованием тестовых рамок. Проблема в том, что тестовая среда связана с NUnit
- "Классическая" сага-тесты с использованием тестового жгута. Тестовый жгут не зависит от фреймворка, но нет тестов, объединяющих конечные автоматы и тестовый жгут, по крайней мере, в основном репо.
- Конечный автомат саговых испытаний с использованием теста твердости вне основного репо. Это мой проект, и я использую xUnit, так как я использую тестовый жгут, это нормально. Тем не менее, вы можете видеть, что один тест пропущен, и я точно не помню, в чем была проблема, но там было что-то, что я не смог решить. Это может быть связано с постоянством, которое я проверяю, хотя.