2009-10-05 4 views
1

VS 2008에서 NUnit 2.5를 사용하여 일부 조건이 설정되었을 때 함수를 단순히 테스트하는 방법이 확실하지 않습니다. return; 내 목적에 부합하는 Assert 메서드가 있습니까? 아니면이 메서드를 테스트 할 수 있습니까?"if (somecondition) return;을 테스트하려면 어떻게해야합니까? 성명서?

+0

함수의 유형은 무엇입니까? – Ikke

+0

이 메소드는 정확히 무엇을합니까? 테스트 할 수 있어야하는 나머지 메소드에는 어떤 종류의 조작이 있어야합니까? –

답변

4

아마도, 단순히 반환하는 기능과 반환하기 전에 무엇인가하는 것 사이에는 몇 가지 관찰 가능한 차이가있을 것입니다. 관찰 가능한 차이점을 테스트하십시오.

이이 아닌 경우 반환하는 것과 그렇지 않은 것 사이에 관찰 할 수있는 차이가 없으면 일반적으로 "테스트하기 어려운"코드 (예 : 캐싱)를 처리합니다. 기능 외적인 문제이거나, 왜 처음부터 그 코드를 얻었는지 자문해야합니다.

1

return 문장 뒤에 오는 코드는 무엇입니까? 어떤 데이터를 수정합니까? 나는 보통 에 운영되는 데이터가 이후에 있는지 확인하고 진술을 변경하지 않습니다. 내가 재귀 노드의 이름을 통해 몇 가지 조건에 따라 나무를 통과하면

, 당신에게 예를 제공하기 위해, 나는 명시 적으로 방문 했어야

  1. 노드가 방문한 것을 확인하고 있습니다
  2. 이 아닌이 방문한 노드는 이 아니고이 방문한 노드입니다.
0

아마도 모의 객체 사용을 고려해야합니까? Moq를 사용하여 예를 들어

, 당신 수 있도록 같은 : 당신은 누구의 유일한 작업 하나 이상의 객체에 걸릴 것입니다, 일부 호출을 위임하는 기능이있을 때

// Called at least once 
mock.Verify(foo => foo.Execute("ping"), Times.AtLeastOnce()); 
0

때때로 당신이 이런 종류의 발생, 그 다음 돌아 오라.

Mocks를 사용하여 테스트하는 방법 - 객체에 전달 된 모의 객체를 만들려면 예상 된 호출이 실제로 이루어 졌는지 (모의 함수의 목적) 모의를 확인하십시오.

반환 전에 예상 된 호출이 이루어지지 않으면 테스트가 실패하고 그렇지 않으면 통과합니다.

비록 이러한 종류의 테스트는 구현에 대한 지식에 위험 할 정도로 조심 스럽습니다.

관련 문제