【发布时间】:2009-05-26 14:56:33
【问题描述】:
我正在大量使用 Active Directory 进行项目。我针对 AD 为几件事设置了一些单元测试,其中一些是我使用模拟对象实现的,一些是我通过对 AD 的真实调用来实现的。
作为我项目的功能之一,我必须检索所谓的“用户配置文件”。此用户配置文件主要由简单的属性组成,例如“cn”、“company”、“employeeid”等。但是,我要填写的一个属性不是简单的“NextPasswordChangeDate”。
据我所知,获得此信息的唯一方法是获取域策略的 maxPwdAge 并将此信息与 pwdLastSet 一起使用。
现在我的问题是:如何以智能的方式进行单元测试?我想出了三个选项,都不是很好:
- 使用自己的账号作为搜索账号,通过其他方式找出日期并在单元测试中硬编码。通过这种方式,我可以很好地对我的代码进行单元测试,但是每个月我都必须更改单元测试,因为我更改了我的密码。
- 使用一些设置了密码永不过期的帐户。这有点毫无意义,因为我无法真正测试我的代码的正确性。
- 使用模拟对象并确保发生正确的 API 调用。这个选项允许测试函数行为的正确性,但是测试的逻辑实际上是在单元测试中,因此我不能确定它是否在做正确的事情,即使测试通过了。
你建议哪三个?或者你有更好的选择?
【问题讨论】:
标签: unit-testing active-directory mocking