Нужна некоторая информация в VS unit Test Assert.Неубедительно?

#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. что именно является неубедительным и когда оно появляется на картинке?
  2. что мне нужно сделать, чтобы мой модульный тест прошел?

Ответ №1:

Вам нужно решить, какие критерии для модульного теста считаются пройденными. Нет общего ответа на то, что делает модульный тест успешным. Спецификации в конечном счете диктуют, что представляет собой прохождение модульного теста.

Если метод, который вы тестируете, действительно просто добавляет два числа, то Assert.AreEqual(expected,actual) , вероятно, этого достаточно для этого конкретного модульного теста. Вы также можете проверить Assert.IsTrue(expected>0) , что это может быть другое утверждение, которое вы могли бы добавить к этому модульному тесту.

Вы захотите протестировать его снова, хотя и с другими значениями, такими как отрицательные значения, нули и действительно большие числа.

Вам не понадобится Inconclusive оператор для модульных тестов addNumber метода. Это утверждение было бы более полезным при работе с объектами и потоками, возможно. Вызов такого Inconclusive утверждения, как у вас, всегда завершится неудачей и всегда вернет переданную в него строку.