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
我這個問題是用戶錯誤和實際的設備故障之間沒有區別。
感謝您的建議。我認爲區分這兩者是很重要的,因爲代碼可能沒有問題,但如果沒有提供開發人員密鑰,單元測試仍然會在100%的時間內失敗。在這種情況下,破碎在我看來並沒有真正被打破。這只是一個似乎沒有被MSTest框架覆蓋的場景(據我所知)。 – 2013-03-20 13:26:38
我正在將此標記爲答案。配置文件是一個好主意。我還將測試條件移動到了您所建議的初始化方法中,並用'Assert.Inconclusive'替換了'Assert.IsNotNull'來作出區分。到目前爲止,這似乎工作得很好,我不需要在每個程序中編寫測試條件。 – 2013-03-20 14:17:44