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);
}
}
當不同的測試案例調用的HomeController的Disconnect
方法我得到_fakeUser.LoginType == 4
始終。但是當我刪除一個測試用例時,兩種情況都完美無缺。
任何想法?
您正在測試之間使用共享變量。使'_fakeUser'在本地測試,你應該沒問題。 – Nkosi