在我的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
部分结束了。
在我到达之前但之前,还有两次对SearchModelFromConfig
和PerformSearch
的调用,并且他们在内部调用了许多其他方法。
如何模拟那些返回一些模拟值?甚至我如何模拟model.Results.Conut();返回零所以我可以测试我想要测试的ELSE
。
我做了什么如下所示,但它不起作用!它仍然想调用 SearchModelFromConfig()的内部方法
var returnModel = GiveMeDummyModel();
ISearchManager manager = new SearchManager(fakeDbContext, fakeMemeEntity);
manager.SearchModelFromConfig(Arg.Any<SearchModel>()).Returns(returnModel);