我试图使用使用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/

10-09 14:30