我正在为我的一个名为 UploadFile()的方法实现nUnit Test案例,如下所示
public void UploadFile(string siteId, string sitePageId)
{
int fileCount = HttpContext.Current.Request.Files.Count;
//Rest of code
}
所以基本上我正在使用 HttpContext.Current.Request.Files 来阅读文件。 从UI它工作正常,但当我为它实现nUnit测试用例时,我无法模拟 HttpContext.Current.Request.Files 。我搜索了一些模拟工具,但我也没有得到任何与模拟 HttpContext.Current.Request.Files 相关的内容。请帮我如何模拟它或为我的方法编写测试用例。
答案 0 :(得分:0)
您可以使用依赖注入,然后将HttpContextBase的实例注入到类中。假设你正在使用MVC:
public class MyController : Controller
{
HttpContextBase _context;
public MyController(HttpContextBase context)
{
_context = context
}
public void UploadFile(string siteId, string sitePageId)
{
int fileCount = _context.Request.Files.Count;
//Rest of code
}
}
现在,您可以使用HttpContextBase的模拟实例化控制器。这就是你用Moq做的事情:
[Test]
public void File_upload_test()
{
var contextmock = new Mock<HttpContextBase>();
// Set up the mock here
var mycontroller = new MyController(contextmock.Object);
// test here
}