#c# #visual-studio-2008
#c# #visual-studio-2008
Вопрос:
Я работаю над некоторыми проектами unittest в VS 2008 в C #, я создал один простой небольшой метод для модульного тестирования?
public int addNumber(int a, int b)
{
return a b;
}
ну, я создал метод модульного тестирования, как показано ниже,
[TestMethod()]
public void addNumberTest()
{
Mathematical target = new Mathematical(); // TODO: Initialize to an appropriate value
int a = 4; // TODO: Initialize to an appropriate value
int b = 2; // TODO: Initialize to an appropriate value
int expected = 0; // TODO: Initialize to an appropriate value
int actual;
actual = target.addNumber(a, b);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
Но когда я пытаюсь запустить самый простой проект ,
Я получаю неубедительное сообщение. Мой вопрос
- что именно является неубедительным и когда оно появляется на картинке?
- что мне нужно сделать, чтобы мой модульный тест прошел?
Ответ №1:
Вам нужно решить, какие критерии для модульного теста считаются пройденными. Нет общего ответа на то, что делает модульный тест успешным. Спецификации в конечном счете диктуют, что представляет собой прохождение модульного теста.
Если метод, который вы тестируете, действительно просто добавляет два числа, то Assert.AreEqual(expected,actual)
, вероятно, этого достаточно для этого конкретного модульного теста. Вы также можете проверить Assert.IsTrue(expected>0)
, что это может быть другое утверждение, которое вы могли бы добавить к этому модульному тесту.
Вы захотите протестировать его снова, хотя и с другими значениями, такими как отрицательные значения, нули и действительно большие числа.
Вам не понадобится Inconclusive
оператор для модульных тестов addNumber
метода. Это утверждение было бы более полезным при работе с объектами и потоками, возможно. Вызов такого Inconclusive
утверждения, как у вас, всегда завершится неудачей и всегда вернет переданную в него строку.