我试图使用使用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);
}
}
当不同的测试用例调用HomeController的
Disconnect
方法时,我总是得到_fakeUser.LoginType == 4
。但是,当我删除一个测试用例之一时,两个用例都运行良好。任何的想法?
最佳答案
也许您可以尝试使用[Isolated]
属性?
测试完成后,它指示Typemock隔离器清除测试结果。
关于c# - C#Typemock接受最后一种情况的模拟结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47862578/