Нужна информация в тестовом модуле VS Assert.Inconclusive? - PullRequest
0 голосов
/ 31 октября 2011

Я работаю над некоторыми юнит-тестами в 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.");
}

Но когда я пытаюсь запустить проект unittest,

Я получаю неокончательное сообщение. Мой вопрос

  1. Что именно неубедительный и когда он входит в картину?
  2. Что нужно сделать, чтобы мой модульный тест прошел?

1 Ответ

2 голосов
/ 31 октября 2011

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

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

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

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

...