使用NSubstitue为单元测试中的方法编写伪返回值

时间:2016-06-20 22:19:16

标签: unit-testing mocking xunit nsubstitute

在我的SearchManager课程中,我有这个简化版本:

public SearchModel ProcessIndexPostMethod(SearchModel model, UrlHelper url)
{
    model = this.SearchModelFromConfig(model);

    model = this.PerformSearch(model, url);

    var resltCount = model.Results.Conut();

    if(resltCount >1 )
    {
        model.ResultString = "many things came back;
    }
    else if (ResultString == 1 )
    {
        model.ResultString = " only one guy came back"
    }
    else
    {
        model.ResultString = "Nothing to see, carry on";
    }

    return model;
}

所有我现在要测试的是,如果ELSE部分结束了。 在我到达之前之前,还有两次对SearchModelFromConfigPerformSearch的调用,并且他们在内部调用了许多其他方法。

如何模拟那些返回一些模拟值?甚至我如何模拟model.Results.Conut();返回零所以我可以测试我想要测试的ELSE

我做了什么如下所示,但它不起作用!它仍然想调用 SearchModelFromConfig()的内部方法

var returnModel = GiveMeDummyModel();

        ISearchManager manager = new SearchManager(fakeDbContext, fakeMemeEntity);

        manager.SearchModelFromConfig(Arg.Any<SearchModel>()).Returns(returnModel);

0 个答案:

没有答案