2011-09-26 57 views
1

我的应用程序的设计是标准的用户操作首先运行(并且即使用户不能继续生成感兴趣的信息),然后可选地提供相应的一些系统更改,这需要提升。如果用户选择继续,则程序会重新启动,并要求使用命令行开关进行提升,以便指示它恢复工作流中的哪个位置。然后新的流程会在旧的流程停止并根据用户要求进行更改的情况下进行选择。如何单元测试仅限管理员功能?

我的问题是我不知道如何编写针对库方法的单元测试,这些方法必须进行特权调用,而无需以管理员身份运行所有Visual Studio。我真的很想避免这样做,所以我没有系统提示我输入凭据来运行部分或全部单元测试。但目前作为一个标准用户,这些调用仅仅因为“System.Management.ManagementException:Access denied”异常而失败。

任何处理这个问题的想法或经验都会提升整个Visual Studio的会话吗?由于我正在使用内置的单元测试,理想情况下解决方案仍然会在测试结果窗口中显示每个测试结果,但这不是要求。

回答

0

我不确定你在做什么需要管理员权限,但我建议在单元测试中,你不应该实际上调用这些方法,而是嘲笑调用这些方法的类。

通过这种方式,您可以确保使用正确的参数进行正确的调用,但不会改变系统的状态。

+0

我接受了答案,因为它是正确的,但是我仍然对我的集成测试有同样的问题。在对系统进行更改之前,我正在创建一个系统还原点以便在出现灾难时进行回滚。 – Michael