2017-05-05 32 views
-2

我不確定如何單元測試將參數作爲字符串接收並返回基於該參數的對象的方法。我無法提供該方法,因爲我收到的說明是使用黑盒測試。 (方法提供了機器人。)Java:單元測試返回對象的方法

+1

看看JUnit。創建一個JUnit測試用例,該用例用各種輸入數據執行該方法,並檢查返回的對象對於每個輸入集是否正確。 – Jason

+0

黑盒單元測試?這是什麼意思?你能舉一個例子來說明你的問題嗎? –

+0

@defaultlocale https://en.wikipedia.org/wiki/Black-box_testing – QBrute

回答

2

通常您會查看該方法中的不同路徑。然後你爲每個路徑至少寫一個測試用例。

每個測試都使用那些應該導入相應路徑的輸入參數,並且聲明關於輸出結果的一些信息,以便再次匹配該路徑的期望值。

從黑匣子方面來看,你可以用類似的方法做到這一點:但是這裏你關注的是確定所需測試的方法的公共契約。

理想情況下,您先做黑匣子,然後您可以測量覆蓋率,以確保您的待測方法不包含黑匣子方法忽略的方面。或者發現:我的合同經過充分測試;但我仍然只使用該方法的80%的代碼。現在你必須決定:你對合同的理解不完整;或者該方法是否包含應該刪除的20%的代碼?

換句話說:這更像是一種思維方式的事情:您是否希望專注於保證所有可能的路徑至少經過一次測試 - 與測試公共契約是否按預期工作(需要某種形式的可用性規範!)。