Ответ 1
Я предпочитаю хранить государственную инфраструктуру отдельно от самой сущности. Таким образом, у вас будет
- Класс сущности (Заказ)
- Государственные классы инфраструктуры
Для инфраструктуры государств я бы предложил использовать единую привязку для каждого объекта, поэтому одной OrderStateFixture
для инфраструктуры состояний заказов будет достаточно.
Основными тестами будут тесты, которые гарантируют правильное состояние заказа:
- Убедитесь, что начальное состояние заказа не проверено
- После успешного выполнения метода
Order.Paid(amount)
Order.State переключится на Paid - Если
Order.Verify()
возвращает true/pass без исключения - Order.State становится проверенным/проверенным