2010-01-25 3 views
0

나는 데이터베이스에 접근하는 방법을 테스트하고 싶다. 내가 읽은 바로는 이것이 모의를 사용하는 완전한 반대이다. 그러나 내가 직면하고있는 문제는 내가 객체를 문자열을 전달한다는 것입니다 후 객체를 만든 다음 rhino mocking mocking call

public void test(string t) 
{ 
    Test t1 = new Test(t); 
    db.Save(t1); 
} 

즉,이 객체와 DB를 안타 테스트에서 내가 가진 :

using(mockery.Record) 
{ 
    Expect.Call(db.Save(???)) 
} 

문제는 - 나는 무엇을 기대합니까?

Expect.call(db.Save(new Test(t)) 

으로 전화가 걸리지 않습니다.

나는 조롱하는 것이 처음이므로 쉬운 질문 일 수 있지만 도움이 될 것입니다.

감사합니다.

+0

가 BTW 내가 ITest으로 조롱하고 = mockery.StrictMock (); 나는 다른 모의 동물이 성공적으로 작동하도록했습니다. – smauel

답변

0

나중에 예상 한 실제 인스턴스를 자주 전달합니다. 예 :

그러나 이것은 제한적일 수 있습니다. 그런 다음 인수가 충만해야하는 기준을 실제로 정의 할 수 있습니다.

using(mockery.Record) 
{ 
    Test instanceToCompare = new Test(t);  
    Expect.Call(db.Save(Arg<Test>.Is.Equal(instanceToCompare))); 
} 

또는 다른 예 : 예를 들어

using(mockery.Record) 
{ 
    Expect.Call(db.Save(Arg<Test>.Matches(t=>t.Name.Length.Equals("Test"))));   
} 
관련 문제