我正在爲一個API編寫一個PHPUnit測試用例(所以不完全是一個單元測試),而且我正在考慮進行所有其他測試都依賴的測試。PHPUnit測試之間的依賴關係
測試用例中的測試發出API請求。這些請求中的大多數都需要用戶。有問題的測試會創建其他測試將使用的用戶。
這是一個可怕的想法?
我正在爲一個API編寫一個PHPUnit測試用例(所以不完全是一個單元測試),而且我正在考慮進行所有其他測試都依賴的測試。PHPUnit測試之間的依賴關係
測試用例中的測試發出API請求。這些請求中的大多數都需要用戶。有問題的測試會創建其他測試將使用的用戶。
這是一個可怕的想法?
我認爲單元測試的最佳方法是首先消除依賴關係。
您可以用您自己的本地版本來抽象結束點,以返回可預測的結果。這樣你可以測試你的請求是否正確。
你可以用你的存根抽象數據提供者(數據庫,filesitem等等),這些存根也會返回可預測的數據(用戶名等等)。
在此之後,你只是測試你的要求,看看它們是正確的..
第二部分是actualy測試數據提供商,擁有不同的測試,所以你知道,良好的用戶名將會給出。
然後你就可以測試API的連通性等等了。
編輯。如果您的代碼中存在依賴關係,並且很難抽象出提供者或終點Web服務,則可能需要調整代碼,以便它將接受對這些對象的引用作爲參數。在你的測試中,你改變了用你自己的存根對象傳遞的對象。在生產中,您傳遞正確的引用,以便您不需要更改代碼以進行測試。
我希望我已經清楚。如果沒有,問我,我可以更好地解釋,也許我不明白你的問題好
只是使其成爲一種實用方法,而不是一個單獨的測試。 – OrangeDog
我可以,但將它作爲測試可以使測試案例更豐富。我錯過了什麼嗎? –
但是,您的測試沒有測試您可以創建用戶,他們正在測試其他功能。 – OrangeDog