Имеет ли смысл модульное тестирование для несуществующего идентификатора - PullRequest
0 голосов
/ 10 марта 2012

Имеет ли смысл передавать несуществующий уникальный идентификатор в мой метод GetXX для ожидания создания списка без подсчета? Я имею в виду, когда я проверяю существующий идентификатор, список создается независимо от количества элементов, которые он содержит. Почему список должен быть null или не иметь count == 0, если я передаю несуществующий идентификатор? Я не уверен в смысле этого теста.

[Test]
public void Get_Teststeps_By_UnitId_Not_Existing()
{
    // ARRANGE
    ITeststepDataProvider provider = new TeststepDataProvider(_connectionString);
    int unitId = 100;

    // ACT
    List<Teststep> units = provider.GetTeststepsByUnitId(unitId);

    // ASSERT
    Assert.IsNotNull(units);
    Assert.Count(0, units);
}

Ответы [ 4 ]

1 голос
/ 10 марта 2012

Если ваш код вызова всегда ожидает, что GetXX() вернет экземпляр List, тогда вам нужно проверить его.Это гарантирует, что кто-то не сможет изменить код GetXX(), и он вернет null, а затем вызовет NullReferenceException s в вашей системе.

1 голос
/ 10 марта 2012

Я думаю, что отрицательный тест является допустимым для выполнения.Должен ли он иметь счетчик 0 и не быть нулевым, я думаю, это зависит от того, что приложение пытается выполнить.Однако, как правило, вы хотите проверять как отрицательные, так и положительные случаи.

1 голос
/ 10 марта 2012

Модульный тест не только , чтобы проверить метод GetXX, как он есть сейчас (хотя никогда не помешает проверить, что метод выполняет то, что вы думаете, он делает, даже если он прост), он также сохраняет любой, кто изменяет / реорганизует код позже от случайного изменения чего-либо, что нарушает работу вашего другого кода. Если вы зависите от определенного поведения, вы всегда должны проверять его, независимо от того, насколько оно упрощено.

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

0 голосов
/ 10 марта 2012

Это будет очень сильно зависеть от тестируемой системы, что она должна делать и как она определяется. Например, если вы определили, что метод, который вы тестируете, никогда не должен возвращать нулевые значения, но пустые коллекции для некоторого заданного ввода (например, несуществующие идентификаторы - что бы это ни значило), тогда имеет смысл проверить этот случай и правильное поведение способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...