条件单元测试

时间:2013-03-15 23:57:28

标签: vb.net unit-testing mstest

这似乎是一个敏感的话题,所以我可能会对这个问题产生很大的仇恨,但这里什么都没有:

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

我的问题在于用户错误与实际单位故障之间没有区别。

1 个答案:

答案 0 :(得分:0)

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