2012-03-09 3 views
0

카운트없이 생성 된 목록을 예상하려면 내 GetXX 방법에 기존 고유 ID를 전달하는 것이 이치에 맞습니까? 나는 기존 ID를 테스트 할 때 List가 보유한 항목의 수와 관계없이 목록이 만들어 짐을 의미합니다. 기존 ID를 전달하지 않으면 왜 목록이 null이되거나 count == 0이 없어야합니까? 나는이 검사의 감각에 대해 확신하지 못한다.존재하지 않는 ID에 대한 단위 테스트에 의미가 있습니까

[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

이것은 테스트중인 시스템, 수행해야 할 작업 및 정의 방법에 따라 달라집니다. 예를 들어, 테스트중인 메소드가 null 값을 반환하지 말고 일부 입력에 대해 빈 콜렉션을 (예 : 존재하지 않는 ID와 같이) 의미하도록 정의한 경우이 케이스를 테스트하고 올바른 동작을 테스트하는 것이 좋습니다. 방법.

+0

괜찮습니다. :) 당신이 말한 것과 같습니다. – Pascal

1

부정적인 테스트가 유효한 것으로 생각합니다. 그것이 0이 아닌 null이 아니어야하는지 여부는 응용 프로그램이 달성하려고 시도하는 것까지입니다. 원칙적으로 긍정적 인 사례만큼 부정적인 사례를 테스트하려고합니다.

1

단위 테스트 (이 방법은 당신이 간단 경우에도 수행 생각한다는 것을 테스트 아픈 적이 있지만) 지금 그대로 GetXX 방법을 확인하기 위해 아니라, 또한 사람이 계속 변화/나중에 실수로 코드를 변경하는 코드를 리팩터링하여 다른 코드가 손상되게합니다. 특정 행동에 의존하는 경우 아무리 간단하게해도 테스트를해야합니다.

다른 말로하면 테스트를 건너 뛰지 마십시오. 지금 당장 이해할 수 없으므로 나중에 유지 관리를 고려하고 실제로 테스트 방법이 메서드의 사용자를위한 좋은 문서를 만드는 방법은 입니다.을 사용하거나 사용하지 마십시오.

1

코드 호출에서 항상 GetXX()List의 인스턴스를 반환 할 것으로 예상되는 경우이를 테스트해야합니다. 이렇게하면 누군가가 GetXX() 코드를 변경하고 null을 반환하고 시스템에 NullReferenceException을 발생시킬 수 있습니다.

관련 문제