我想将一段使用
Windows Impersonation API的代码包装成一个整洁的小助手类,并且像往常一样,我正在寻找一种先测试的方法.但是,虽然WindowsIdentity是托管类,但实际执行登录所需的LogonUser调用是另一个用户是advapi32.dll中的非托管函数.
我想我可以解决这个问题,为我的助手类引入一个接口,以便在实现中使用和隐藏P / Invoke调用,但测试该实现仍然是个问题.并且你可以想象,实际上在测试中执行模拟可能有点问题,因为用户实际上需要在系统上存在.
解决方法
指南:不要测试您未编写的代码.
您不应该担心WinAPI实现不起作用(很可能它按预期工作).
您应关注的是测试“接线”,即您的代码是否进行了正确的WinAPI呼叫.在这种情况下,您只需要模拟界面并让模拟框架告诉您调用是否使用了正确的参数.如果是的话,你就完成了.
您不应该担心WinAPI实现不起作用(很可能它按预期工作).
您应关注的是测试“接线”,即您的代码是否进行了正确的WinAPI呼叫.在这种情况下,您只需要模拟界面并让模拟框架告诉您调用是否使用了正确的参数.如果是的话,你就完成了.
>创建IWinAPIFacade(使用相关的WinAPI方法)并实现CWinAPIFacade.>编写一个插入IWinAPIFacade模拟的测试,并验证是否进行了适当的调用>编写测试以确保创建CWinAPIFacade并将其作为默认值插入(在正常运行中)>实现CWinAPIFacade,它只是盲目委托给Platform Invoke调用 – 不需要自动测试这一层.只需进行手动验证即可.希望这不会经常改变,没有任何破坏.如果你发现它将来会发生这种情况,可以通过一些测试来阻止它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。