조롱/스터 빙을 위해 RhinoMocks를 사용하고 단위 테스트를 위해 Nunit 프레임 워크를 사용하고 있습니다.RhinoMock을 사용하여 특정 매개 변수로 메서드 호출을 테스트하는 방법은 무엇입니까?
제가 테스트 케이스를 다음과 고군분투
class A
{
private int data = -1;
public void Initialize (int data)
{
this.data = data;
}
public void CallA()
{
if (data == -1) throw new InvalidArgumentException("data has invalid value -1");
try
{
A1("a1");
A2("a2");
}
catch (AException e)
{
throw;
}
catch (Exception e)
{
throw new AException(ErrorCode.UnknownException, e);
}
}
private void A1(string item)
{
}
private void A2(string item)
{
}
}
클래스 다음 한 :
InvalidAgrumentException : 하나
Initialized
메서드가 호출되지 않았거나 -1이에 인수로 전달되는 경우가 발생합니다Initialized
. 데이터는 비공개이므로 IL Weaving을 수행하는 TypeMock isolater과 같은 라이브러리가 사용될 때까지는 조롱받을 수 없습니다. 이 예외를 발생 시키려면, 하나의 옵션은Initialized
을 호출하는 것입니다. 올바른 방법은 확실하지 않습니다. (데이터가 다른 곳에서도 -1로 설정 될 수 있기 때문에 추가 기능 호출이 필요합니다.)"a1"매개 변수로 A1이 호출되고 " a2 "매개 변수.
+1 "깨지기 쉬운 테스트 스위트"및 "임시 연결 방지" –
+1 : 두 시간 디버깅 후 패밀리 초기화 메소드는 항상 훌륭한 찾기입니다. –
+1, 비평에 관한 문제는 없습니다. 귀하의 게시물은 나를 [this] (http://blog.ploeh.dk/2011/05/24/DesignSmellTemporalCoupling.aspx)로 안내했으며, 앞으로이 코드의 냄새를 피하는 데 도움이 될 것입니다 (가능한 범위 내에서). – Tilak