作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有使用 Dns.GetHostEntry(hostNameOrIp)
的代码,我想检查一次该函数返回真实值的场景但在某个时间(当我决定) 此函数抛出异常。
目前我在 visual studio 2010 中使用 MSTest 框架。有人知道实现它的最简单方法是什么?
最佳答案
实现它的最简单方法是为这个静态方法创建包装器:
public class DnsWrapper : IDnsWrapper
{
public IPHostEntry GetHostEntry(string hostNameOrAddress)
{
Dns.GetHostEntry(hostNameOrAddress);
}
}
并让你的代码依赖于这个接口(interface):
public interface IDnsWrapper
{
IPHostEntry GetHostEntry(string hostNameOrAddress);
}
现在,使用任何模拟库模拟此依赖项都非常容易。例如 Moq :
Mock<IDnsWrapper> dnsMock = new Mock<IDnsWrapper>();
dnsMock.Setup(d => d.GetHostEntry(It.IsAny<string>()))
.Throws(new SocketException());
var yourClass = new YourClass(dnsMock.Object); // inject interface implementation
yourClass.DoSomethingWhichGetHostsEntry();
关于c# - 单元测试代码与 Dns.GetHostEntry(hostNameOrIp) 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23631305/
我有使用 Dns.GetHostEntry(hostNameOrIp) 的代码,我想检查一次该函数返回真实值的场景但在某个时间(当我决定) 此函数抛出异常。 目前我在 visual studio 20
我是一名优秀的程序员,十分优秀!