这似乎是一个敏感的话题,所以我可能会得到很多人的讨厌,但这里没有:
我正在开发的应用程序严重依赖于外部API,而该API需要个性化的开发人员密钥才能完成任何操作。这使得像我这样的单元测试新手编写可以重新分发的测试变得特别困难,而不必一直担心我的开发人员密钥可能被泄露。
我的观点是:如果没有提供开发人员密钥,我想阻止我的单元测试运行。还应该清楚的是,当发生这种情况时,这不是应用程序错误,而是用户错误。
这是我可以很容易地做使用MSTest框架吗?
我已经尝试过了 (VB)
现在我只是让我的测试失败,如果一个开发人员键没有设置:
<TestClass()> Public Class Tests
Private Shared DeveloperKey As NMAKey
<ClassInitialize>
Public Shared Sub Initialize(context As TestContext)
DeveloperKey = NMAKey.TryParse("Your developer key")
End Sub
<TestMethod>
Public Sub Example()
' test condition
Assert.IsNotNull(DeveloperKey)
'
' actual test code that relies on 'DeveloperKey' being set
'
End Sub
End Class
我的问题是用户错误和实际单元故障之间没有区别。
您可能应该将开发人员密钥放在配置文件中,而忽略版本控制中的文件。您可以检查是否在测试类的初始化中找到键,而不是在单独的测试中。另一种可能性是编写测试来检查配置文件中是否存在键。我真的不明白为什么你认为区分用户错误和应用程序错误很重要,坏了就是坏了:)