簡體   English   中英

單元測試在這里適用嗎?

[英]Is Unit Test Applicable Here?

 public function addPic($loggedInId,$PicId){

        $chatCoverPhotoObj = new COVER_PHOTO();
        $out = $chatCoverPhotoObj->add($loggedInId,$PicId);

        if($out)
            return true;
        return false;
    }

上面的示例代碼是用php編寫的,並且在表COVER_PHOTO Record中的簡單添加記錄Record:“ picId”對應於由“ loggedInId”標識的登錄用戶。

我想知道在該功能的單元測試中應該寫些什么。 或者對於這樣的功能,我們不應該編寫單元測試。

請提出建議?

首先,如果您的被測 系統 / 使用的是基礎設施方面的任何東西(在您的情況下是數據庫),那么它往往是集成測試

單元測試是完全隔離的,所有可能的依賴都被模擬/存根了。

我在您的代碼中看到的第一個問題是new()建立了函數的依賴關系。 這樣您就不能真正輕松地測試您的代碼。

我建議您最好反轉此依賴關系,並在類的構造函數中有一個接口,該接口可以接收該接口的具體實現。 完成此操作后,您可以在測試中模擬數據庫部分。 但是,通過查看您在問題中共享的代碼,我並不十分確定您要在此處測試什么行為

始終確保要測試的內容,在這種情況下,例如持久性規范或映射配置(當然,如果您使用的是某種OR / M )。 僅檢查持久性操作的返回值(成功或失敗標志)並不會增加可測試的業務價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM