Какие переменные должны быть переданы в модульный тест - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть тест, который выглядит следующим образом:

[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void MyTest_String1IsEmpty_ThrowsException()
{
    string string1 = ""
    string string2 = "b"
    string string3 = "c"

    _myMethod.TestMethod(arg1,arg1,arg1);
}

Тест предназначен для проверки, если строка1 пуста. Мой вопрос, с точки зрения передового опыта, должны ли переменные, необходимые для передачи методу TestMethod, передаваться в качестве аргументов теста:

[TestMethod]
[DataRow("", "b", "c")]
[ExpectedException(typeof(ArgumentException))]
public void MyTest_String1IsEmpty_ThrowsException(string string1, string string2, string string3)
{
    _myMethod.TestMethod(string1,string2,string3);
}

Аргумент, который я тестирую, передается в тест :

[TestMethod]
[DataRow("")]
[ExpectedException(typeof(ArgumentException))]
public void MyTest_String1IsEmpty_ThrowsException(string string1)
{
    string string2 = "b"
    string string3 = "c"
    _myMethod.TestMethod(string1,string2,string3);
}

Или точные переменные задаются внутри самого теста, как в первом примере кода?

Я вижу вариант использования, если я тестировал, например, несколько значений для строки1, если бы я проверял, что string1 имеет значение null или пробел, я просто передал бы значения для String1 в тест, и строки данных были бы:

[DataRow("")]
[DataRow(" ")]
[DataRow(null)]
...