2017-12-18 6 views
2

typeMock을 사용하는 메소드 호출을 사용하여 모의하고 있습니다. 나는 다른 경우에 방법을 조롱했으나 동일한 결과를 얻을 때마다. 다음은 코드입니다 :C# typemock 마지막 사례의 조롱 된 결과

[TestFixture] 
public class HomeControllerSpec 
{ 
    User _fakeUser; 
    ProfileSettingsBL _profileSettingBL = null; 

    [SetUp] 
    public void SetUp() 
    { 
     // Inital setup 
    } 


    [TestCase] 
    public void DisconnectOutlookCalendarForUserRegisterWithEmail() 
    { 
     _fakeUser = new User(); 
     _fakeUser.LoginType = 4; // This is be different in each case 

     Isolate.WhenCalled(() => _profileSettingBL.RetrieveUserProfile()).WillReturn(_fakeUser); 

     HomeController ctrl = new HomeController(); 
     var result = ctrl.Disconnect(); 

     Assert.IsTrue(result.Content); 
    } 



    [TestCase] 
    public void DisconnectOutlookCalendarForUserRegisterWithName() 
    { 

     _fakeUser = new User(); 
     _fakeUser.LoginType = 5; // This is be different in each case 

     Isolate.WhenCalled(() => _profileSettingBL.RetrieveUserProfile()).WillReturn(_fakeUser); 

     HomeController ctrl = new HomeController(); 
     var result = ctrl.Disconnect(); 

     Assert.IsTrue(result.Content); 
    } 

} 

다른 테스트 케이스가 항상 _fakeUser.LoginType == 4을 얻고있다 HomeController의 Disconnect 메소드를 호출. 하지만 테스트 케이스 중 하나를 제거 할 때 두 케이스 모두 완벽하게 실행됩니다.

아이디어가 있으십니까?

+0

테스트간에 공유 변수를 사용하고 있습니다. '_fakeUser'를 테스트 로컬로 만들고 괜찮을 것입니다. – Nkosi

답변

1

아마도 [Isolated] 속성을 사용해 볼 수 있습니까? 테스트 완료 후 Typemock Isolator가 테스트 결과를 정리하도록 지시합니다.