Jim*_*mmy 2 c# tdd unit-testing mocking visual-studio
我正在编写一些单元测试,并且在尝试执行以下操作时,我从实际代码中抛出异常:
string IPaddress = HttpContext.Current.Request.UserHostName.ToString();
Run Code Online (Sandbox Code Playgroud)
有没有办法模拟IP地址而不重写我的代码接受IP地址作为参数?
谢谢!
看看依赖注入.
基本上,通过将数据推送到具有(例如在这种情况下)"上下文"或"设置"类的类中来解决这些问题.
public interface IAppContext
{
string GetIP();
}
Run Code Online (Sandbox Code Playgroud)
然后你有一个prod实现,它可以完成真实的事情,并在你的测试中使用模拟或伪造.
public class AppContext : IAppConext
{
public string GetIP()
{
return HttpContext.Current.Request.UserHostName.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
使用ip地址将应用程序上下文推送到类中...
哦 - 据我所知,对于任何VS版本都没有内置的嘲讽,你需要查看其中一个 - 犀牛嘲笑,Moq ......有很多!另请参阅typemock但它采用不同的方法.
PK :-)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |