我有这样的方法:
public List<string> GetAllDomains()
{
List<string> domains = new List<string>();
DirectoryContext directoryContext = new DirectoryContext(DirectoryContextType.Domain);
using (Domain currentDomain = Domain.GetDomain(directoryContext))
using (Forest forest = currentDomain.Forest)
{
DomainCollection addDomainsInForest = forest.Domains;
foreach (Domain domain in addDomainsInForest)
{
domains.Add(domain.Name);
}
}
return domains;
}
如何为此方法编写单元测试?感谢。
答案 0 :(得分:1)
由于您的方法与Active Directory对话,因此您无法为其创建单元测试。您可以创建集成测试。集成测试是测试代码如何与环境(或其他代码)集成的测试。在您的情况下,您希望测试代码如何与Active Directory集成。
在这种情况下,集成测试只能在您知道它将包含的域的名称的特定环境中工作。
话虽如此,如果您的代码包含大量逻辑,您可以通过隐藏某些接口/接口后面的活动目录代码来创建抽象,然后您可以通过模拟这些接口来单元测试该逻辑。
但是,在你的情况下,我看不出你的方法包含很多逻辑。它简单地消耗了Active Directory API。