Подтвердить что ты не робот

NUnit и TestCaseAttribute, возможно скрещивание параметров?

У меня есть unit-test, который проверяет множество случаев, например:

public void Test1(Int32 a, Int32 b, Int32 c)

Скажем, я хочу создать тестовый код без цикла, поэтому я хочу использовать TestCase для указания таких параметров:

[TestCase(1, 1, 1)]
public void Test1(Int32 a, Int32 b, Int32 c)

Можно ли мне с этим атрибутом сказать следующее:

  • Для первого параметра здесь набор значений
  • Для второго параметра здесь набор значений
  • Для третьего параметра здесь набор значений
  • Теперь проверьте все комбинации выше

Т.е. что-то вроде этого:

[TestCase(new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3, 4 })]
public void Test1(Int32 a, Int32 b, Int32 c)

Не похоже, но, возможно, я что-то пропускаю?

4b9b3361

Ответ 1

NUnit предоставляет атрибут Values, который может использоваться вместе с Combinatorial, чтобы достичь этого:

[Test, Combinatorial]
public void Test1( 
    [Values(1,2,3,4)] Int32 a, 
    [Values(1,2,3,4)] Int32 b, 
    [Values(1,2,3,4)] Int32 c
)
{
    ...
}