首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Dns.GetHostEntry(hostNameOrIp)依赖性的单元测试代码

具有Dns.GetHostEntry(hostNameOrIp)依赖性的单元测试代码
EN

Stack Overflow用户
提问于 2014-05-13 12:28:28
回答 1查看 1.6K关注 0票数 4

我有使用Dns.GetHostEntry(hostNameOrIp)的代码,我想检查这个函数有一次返回实值,但是在一段时间内(当我决定)这个函数会抛出异常。

目前,我在visual 2010中使用MSTest框架。有人知道什么是最简单的方法来实现它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-13 12:35:32

实现它的最简单方法是为这个静态方法创建包装器:

代码语言:javascript
复制
public class DnsWrapper : IDnsWrapper
{
    public IPHostEntry GetHostEntry(string hostNameOrAddress)
    {
         Dns.GetHostEntry(hostNameOrAddress);
    }
}

并使您的代码依赖于这个接口:

代码语言:javascript
复制
public interface IDnsWrapper
{
   IPHostEntry GetHostEntry(string hostNameOrAddress);
}

现在,通过任何模拟库都可以很容易地模拟这个依赖项。例如,使用莫克

代码语言:javascript
复制
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();
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23631305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档