Данные InlineAutoData для аргумента конкретного параметра

1

Предположим, что у меня есть следующий параметризованный тест,

[Theory]
[InlineAutoData(typeof(IFoo), null)
public void FooBar(IFoo foo, IBar bar)
{
    // Do stuff
}

Вышеприведенное исключает возможность преобразования RuntimeType в IFoo.

Мой вопрос, как я могу сказать AutoFixture, чтобы сгенерировать член для первого параметра, и использовать null для второго в этом сценарии (или это возможно)?

Насколько я могу судить, InlineAutoData имеет ограничение на то, что вы должны указать данные в порядке, и любые неуказанные данные автоматически генерируются, но это не совсем идеально, и я надеюсь, что я не прав?

  • 2
    Самое простое решение - изменить порядок параметров.
  • 0
    Я так понимаю, что нет исправления на месте? К сожалению, это не очень желательное решение.
Теги:
unit-testing
xunit.net
autofixture

2 ответа

0

Я новичок в этом, но я думаю, что это объяснит, почему: "Использует значения InlineData для первых аргументов метода, а затем использует AutoData для остальных (когда значения InlineData заканчиваются)". per: github.com/AutoFixture/AutoFixture/wiki/Cheat-Sheet

(Добавлено как ответ на предложение @AlexAngas.)

-4
[Theory]
[InlineAutoData(null)]
public void FooBar(IBar bar, IFoo foo)
{
    // Do stuff
}
  • 2
    Пожалуйста, дайте небольшое объяснение в своем ответе - ответы только на код не здесь
  • 1
    Я согласен, этот ответ нуждается в объяснении того, почему это хорошее решение, особенно если вы изменили параметры, что, по словам спрашивающего, нежелательно.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню