У меня возникла интересная проблема. Я узнал, что AutoDataAttribute может использоваться для минимизации части «Упорядочить» вашего теста (зависимости, переданные через ctor). Потрясающие!Использовать атрибуты AutoData и MemberData в тесте XUnit
Пример:
public class AutoMoqDataAttribute : AutoDataAttribute
{
public AutoMoqDataAttribute()
: base(new Fixture().Customize(new AutoMoqCustomization()))
{ }
}
[Theory, AutoMoqData]
public void Process_ValidContext_CallsK2Workflows(
[Frozen]Mock<IK2Datasource> k2,
[Frozen]Mock<IAppConfiguration> config,
PrBatchApproveBroker sut)
{
(...)
}
Теперь я хочу, чтобы использовать эту замечательную функцию и вводить свои данные в эту теорию:
[Theory, AutoMoqData, MemberData("Data")]
public void ExtractPayments_EmptyInvoiceNumber_IgnoresRecordsWithEmptyInvoiceNumber(
[Frozen]Mock<IExcelDatasource> xls,
SunSystemExcelDatasource sut,
List<Row> rows,
int expectedCount)
{
(...)
}
Проблема: атрибут Autodata будет генерировать случайные данные для меня. Единственный способ, которым я нашел, - избавиться от атрибута AutoData и использовать MemberData. Если я сделаю это, мне нужно обрабатывать объект Instantiations себе:) ...
Есть ли способ передать свои классы и некоторых «жестко закодированные» данных в то же время?
Спасибо и, Себа
Выглядит хорошо. Может ли он быть составлен с помощью 'MemberData'? –
Не знаю. Из того, что я вижу [здесь] (https://xunit.github.io/docs/test-migration.html), 'MemberData' подобен' PropertyData', но также поддерживает статические поля и статические методы. –
В [this] (http://stackoverflow.com/a/22996375/467754) answer, 'PropertyData' объединен с' AutoNSubstituteData', поэтому он должен * работать в xUnit.net 2.x с 'MemberData' как Что ж... –