NUnit и TestCaseAttribute, возможно ли перекрестное соединение параметров? - PullRequest
12 голосов
/ 23 октября 2009

У меня есть юнит-тест, который тестирует различные случаи, например:

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)

Не похоже, но, может быть, я что-то упускаю?

1 Ответ

13 голосов
/ 23 октября 2009

NUnit предоставляет атрибут Значения , который можно использовать вместе с атрибутом 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
)
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...