我不明白你将如何测试以下控制器。
你会如何模拟请求?在我看来,要模拟它,你需要传递一个Request方法,但这是错误的。或者你需要将它注入到Controller构造函数中,但这似乎也是错误的。
我完全了解这将如何与ISomethingService或ISomethingRepository一起使用,但对于内在的依赖性,我只是没有得到它。
由于
public ActionResult Test()
{
return View(Request.Browser.Crawler ? "A" : "B");
}
答案 0 :(得分:1)
您需要创建模拟http上下文。有多个库可以这样做,但你基本上需要做这样的事情:
var request = new HttpRequest("", "http://localhost/", "");
var writer = new StringWriter();
var response = new HttpResponse(writer);
var context = new HttpContext(request, response);