2012-03-09 2 views
0

Имеет ли смысл передать существующий уникальный идентификатор моему методу GetXX, чтобы ожидать создания списка без каких-либо подсчетов? Я имею в виду, что когда я тестирую существующий Id, List создается независимо от количества элементов, которые он хранит. Почему список должен быть 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); 
} 

ответ

0

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

+0

ОК имеет смысл :) Его так же, как вы сказали. – Pascal

1

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

1

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

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

1

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

Смежные вопросы