2010-05-12 59 views
1

我想寫一個測試使用犀牛嘲笑3.6 AAA。我遇到的問題是我設置的存根似乎沒有返回正確的對象。存根沒有返回正確的價值與犀牛嘲笑3.6

下面的測試失敗:

[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]而user2的電子郵件屬性爲null

任何人都可以擺脫什麼,我做錯了一些輕?

+0

只是一個想法,是電子郵件getter做什麼? – 2010-05-12 09:14:33

+0

這只是一個基本屬性 – Jon 2010-05-12 09:23:00

+0

這是定義:public virtual string Email {get;組;} – Jon 2010-05-12 09:41:18

回答

3

您混淆了舊的和新的語法,它似乎不能很好地結合在一起。如果你想使用新的語法(首選),你必須改變你的設置方法:

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

如果創建MockRepository對象,那麼你需要使用模擬考試之前運行repository.ReplayAll() ,但這是舊的語法。所以最好只使用靜態方法。