测试需要来自非域计算机的域帐户的代码

时间:2012-11-15 20:50:16

标签: visual-studio-2010 active-directory tdd cross-domain vpn

我正在编写连接到Active Directory的代码来查询和操作用户帐户。此代码包含测试集。我目前正在家用机器上开发此解决方案,但要测试AD,我需要通过VPN连接到公司的网络。我的家庭计算机不在公司域中,但我需要在域帐户下运行才能使AD查询正常运行。有没有一种简单的方法可以做到这一点,或者是我唯一的直接选择远程进入我的公司工作站并在那里运行测试,或者将我的个人计算机添加到公司的域中?

1 个答案:

答案 0 :(得分:1)

我对AD没有真正的经验,尽管这根本不是问题。事实上,这将有助于证明我的观点。

让我们说有一种方法可以返回组内的所有用户,如果我是你自己,我会在我开发的代码中,我会在我自己的界面后面抽象它。例如:

public class UserGroupFinder : IGroupFinder
{
    public Users FindBy(Group group)
    {
        // Code to interact with AD here
        // Note, Users and Group would be my own classes, not AD.
    }
}

然后我会针对IGroupFinder编写有问题的应用程序,而不是真正的完全承诺的AD系统。这意味着我可以在家里,办公室或其他任何地方编写单元测试(或其他自动测试)!

只要你的代码“找到合适的东西”,一旦找到一个组的所有用户,你应该没问题。例如,您可以为姓氏以“F”开头的所有用户过滤此查询的结果。这是您的域逻辑,与Active Directory无关。你将试驾与第三方互动所需的代码。

最后一步是实际创建域对象的具体实例。因此,一旦您配置了配置AD的系统,您就可以开始实现这些实现的连接。我不会对此进行单元测试,因为根据这个定义,这不是单元测试。此代码只是对第三方代码的调用,将由Microsoft进行测试。