8
|
James Lawruk · 技术社区 · 15 年前 |
![]() |
1
13
特别是,使用HttpResponseBase( http://msdn.microsoft.com/en-us/library/system.web.httpresponsebase.aspx )作为输入参数,而不是HttpResponse。然后可以从测试中模拟HttpResponseBase。当您要传入一个真正的HttpResponse时,使用HttpResponseWrapper生成一个HttpResponseBase。 |
![]() |
2
3
要成为真正的单元,您应该模拟HttpResponse和其他一切,只测试您的方法代码。我不知道有什么C#mock实用程序,但是 question might help 然后您可以执行类似的操作(示例是带有Mockito的Java):
|
![]() |
3
2
其中,SendStringAsHttpResponse定义为
|
![]() |
4
1
的构造函数
你必须设置
你可以使用
.NET Reflector
要在中挖掘的程序
|
![]() |
5
1
因此,模拟HttpResponse的问题在于它是密封的,因此您无法扩展它(大多数模拟具体类的模拟框架只是覆盖虚拟方法)。微软也很好心,没有为其中的大多数提供接口…所以,谢谢微软。
|
![]() |
6
0
只是 您无法创建现有实现的自己的实例的原因是,它将与您的应用程序服务器紧密关联,并且可能需要各种其他的gunk来实例化。 如果结果证明我需要比简单的HttpResponse空版本更复杂的东西,那么我会考虑不直接测试这个方法:也许一个或两个级别的测试会更简单,并且会为我提供相同级别的代码信心。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |