2010-05-12 6 views
1

Rhino Mock 3.6을 사용하여 AAA로 테스트를 작성하려고합니다. 내가 겪고있는 문제는 설정 한 스텁이 올바른 객체를 반환하지 않는 것 같습니다.스텁이 Rhino Mocks 3.6에서 올바른 값을 반환하지 않습니다.

다음 테스트가 실패 : 사용자 2의 이메일 속성이

사람이 내가 잘못하고 있어요 무엇에 도움이 되거 수 null 인 반면

[SetUp] 
    public void SetUp() 
    { 
     repository = new MockRepository(); 
     webUserDal = repository.Stub<IWebUserDal>(); 
    } 

    [Test] 
    public void Test() 
    { 
     var user1 = new WebUser{Status = Status.Active, Email = "[email protected]"}; 
     webUserDal.Stub(x => x.Load(Arg<string>.Is.Anything)).Return(user1); 

     var user2 = webUserDal.Load("[email protected]"); 

     Assert.AreEqual(user1.Email, user2.Email); 
    } 

사용자 1의 이메일 속성은 [email protected]입니까?

+0

전자 메일 가져 오기 도구가 뭔가를하는 것입니까? –

+0

단지 기본 속성입니다 – Jon

+0

이것은 다음과 같은 정의입니다. public virtual string Email {get; 세트;} – Jon

답변

3

이전 구문과 새 구문이 섞여있어 제대로 작동하지 않습니다. 새 구문 (선호)를 사용하려는 경우, 당신은 당신의 설정 방법을 변경해야합니다 :

[SetUp] 
public void SetUp() 
{ 
    webUserDal = MockRepository.GenerateStub<IWebUserDal>(); 
} 

당신은 당신이 모의 객체를 사용하기 전에 repository.ReplayAll()를 실행하는 데 필요한 다음 MockRepository 객체를 작성하는 경우 ,하지만 이것은 오래된 구문입니다. 따라서 정적 메서드 만 사용하는 것이 좋습니다.

관련 문제