Я пытаюсь создать сообщения QuickFix с использованием автофиксации, особенно сообщения NewOrderSingle . Но, похоже, что AutoFixture создает значения не для всех свойств, а только для некоторых из них!
При просмотре свойств некоторые имеют экземпляры, а некоторые нет.
Пример трассировки стека для свойства AccountType
:
at QuickFix.FieldMap.GetInt(Int32 tag)
at QuickFix.FieldMap.GetField(IntField field)
at QuickFix.FIX44.NewOrderSingle.get_AccountType()
Рассмотрим следующий фрагмент кода:
[Fact]
public void Should_Test_Something()
{
var fixture = new Fixture();
var newOrderSingle = fixture.Create<NewOrderSingle>();
}
А вот как выглядит NewOrderSingle
Ссылка
Вопросы:
- Почему AutoFixture создает экземпляр например, для свойства
Account
, но не для AccountType
? - Как AutoFixture может создавать экземпляры для всех свойств?
Дополнительный вопрос:
Хотя конструктор AccountType
принимает целое число, не все значения являются действительными (с точки зрения бизнеса). Как заставить AutoFixture использовать только действительные целые числа?
var message = new NewOrderSingle
{
// Valid
//AccountType = new AccountType(AccountType.ACCOUNT_IS_CARRIED_ON_CUSTOMER_SIDE_OF_BOOKS)
// Wont throw, but is not valid
AccountType = new AccountType(100)
};