使用ServerManager .net C#的单元测试方法

时间:2014-01-28 11:54:50

标签: c# unit-testing iis

您将如何测试使用ServerManager的此类方法。显然你不能模拟ServerManager。而这种方法是无效的。有解决方法吗?一个事件应该测试这种方法吗?谢谢!

 public void AppPoolRemoval(string poolName)
    {
        using (var serverManager = new ServerManager())
        {
            var oldPool = serverManager.ApplicationPools[poolName];
            if (oldPool != null)
            {
                oldPool.Delete();
                serverManager.CommitChanges();
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

无法单独对此代码进行单元测试。你最好为它编写一个集成测试,你可以在那里测试它。

你可以在界面背后抽象这个逻辑:

public interface IWebServer
{
    void AppPoolRemoval(string poolName);
}

然后单独测试依赖于此的代码。但是与真实ServerManager相关的实际实现无法进行单元测试。