在我的應用程序中,我們的設計中有兩層:API和操作。單元測試 - 我應該如何測試這種設計?
1. 操作執行代碼的「真實」邏輯,例如:驗證用戶,檢索書籍信息,通知用戶他的書已被查看。
許多API都可以使用相同的操作。
2. APIs由用戶執行:它們接收參數,然後根據API的邏輯執行各種操作。
例如:ViewBookAPI:
class BookApis
{
/**
* authenticateUserOperation, retreiveBookOperation, informUserBookViewOperation
* are injected to this class. (Dependency Injection)
*/
public function viewBookApi($bookId, $accessToken)
{
$internalUserId = $this->authenticateUserOperation($accessToken);
$book = $this->retrieveBookOperation($bookId, $internalUserId);
$this->informUserBookWasViewedOperation($book->getOwnerUserId(), $bookId);
return $book->getContent();
}
}
我應該如何測試這個設計?
1.如果我測試API,那麼我將不得不重複使用相同操作的API的相同測試。
2.如果我測試操作,我所要做的就是驗證API是否正確使用操作。
但是如果一個錯誤的對象被注入到API會怎麼樣?那麼沒有測試會失敗。
非常感謝。
爲什麼沒有評論投票呢? – eitanfar 2014-10-12 05:41:25