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
메소드를 호출. 하지만 테스트 케이스 중 하나를 제거 할 때 두 케이스 모두 완벽하게 실행됩니다.
아이디어가 있으십니까?
테스트간에 공유 변수를 사용하고 있습니다. '_fakeUser'를 테스트 로컬로 만들고 괜찮을 것입니다. – Nkosi