0

这似乎是一个敏感的话题,所以我可能会对此感到非常讨厌,但这里什么都没有:

我正在开发的应用程序严重依赖外部 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

我的问题是用户错误和实际单元故障之间没有区别。

4

1 回答 1

0

您可能应该将开发人员密钥放在配置文件中,并在版本控制中忽略该文件。您可以检查是否在测试类的初始化而不是单个测试中找到了密钥。另一种可能性是编写测试来检查配置文件中是否存在密钥。我真的不明白为什么你认为区分用户错误和应用程序错误很重要,坏了就是坏了:)

于 2013-03-19T11:00:37.340 回答