При создании тестовых случаев Theory с XUnit я хотел бы иметь возможность включать как параметры, так и ожидаемый результат для каждого случая.Я использовал атрибут InlineData, но для тяжелой загрузки конфигурации это не оптимально и не позволяет повторное использование.
[InlineData(1,2,3,4,5,6,7,...)]
Поэтому я перенес тестовые конфигурации в отдельный класс и теперь загружаю их с MemberData и MemberType.
[Theory]
[MemberData(nameof(DataClass.Data), MemberType = typeof(DataClass))]
public void TestValidConfig(Configuration config)
{
...
}
Однако это не позволяет мне указать ожидаемый результат, как я мог бы, если бы использовал базовый тег, т.е.
[InlineData("Input1", "Input2", "Input3", "ExpectedResult")]
Я не хочу включать ожидаемый результат сданные конфигурации, так как они будут использованы в нескольких тестах.
Кто-нибудь получил решение этой проблемы?
Таким образом, основная проблема состоит в том, чтобы иметь сложные тестовые данные, которые можно было бы использовать в нескольких местах, но затем хотеть отделить ожидаемый результат.Таким образом, в калькуляторе (плохой пример) вы можете иметь списки чисел, которые являются тестовыми данными.Затем они могут быть переданы в тест сложения, умножения или вычитания.Здесь я бы хотел разделить входные и ожидаемые выходные данные.