我剛剛開始使用googlemock來模擬C++項目。在我的情況下,我的類將被測試觀察一個寫入的文件,並且每當寫入最少量的新數據時,它就開始做一些工作。在googlemock中嘲弄文件寫入過程
我需要的是寫入文件的過程的模擬類。據我瞭解,我需要完全實現這種「寫入文件」功能,形式爲(對於googlemock)一個虛擬類,從中派生出一個模擬類。模擬包裝器最終用於測試和評估目的,對嗎?
感謝您的幫助!
我剛剛開始使用googlemock來模擬C++項目。在我的情況下,我的類將被測試觀察一個寫入的文件,並且每當寫入最少量的新數據時,它就開始做一些工作。在googlemock中嘲弄文件寫入過程
我需要的是寫入文件的過程的模擬類。據我瞭解,我需要完全實現這種「寫入文件」功能,形式爲(對於googlemock)一個虛擬類,從中派生出一個模擬類。模擬包裝器最終用於測試和評估目的,對嗎?
感謝您的幫助!
我假設你的「觀察者」類的對象被通知 ,那麼「寫入者」類的對象 已寫入最小量的數據。在這種情況下,你需要實現一個抽象的 類,它表示你的「作者」類的一個接口,並且你的真正的「寫」類繼承它並覆蓋它的虛函數。 另外,你的模擬「榨汁器」類的實現繼承了這個接口和 並創建使用MOCK_METHODn
模擬實現。
然後,讓您的「觀察者」類使用指向抽象類的指針從「編寫器」對象 接收通知。通過這種方式,您可以使用依賴項 注入在測試階段切換實現,方法是創建一個模擬 「寫入器」對象,並將其地址傳遞給「觀察器」對象(而不是地址轉換爲真實的「寫入器」對象)並設置測試在模擬對象上使用EXPECT_CALL
的案例。
這是我可以給你的最好的建議,因爲你沒有向我們提供你的課程的詳細描述。
編輯:
關於你真正的「writter」類的實現:您不必立即創建它,你可以使用模擬類,現在來測試「觀察者」類的行爲,並留下稍後執行。當然,你必須最終實現它,因爲它必須用於生產代碼。
在谷歌模擬術語中,Mocks是用於驗證您的代碼對它們執行特定操作的對象。
你所描述的不是一個模擬,而是一個觸發代碼測試操作的工具類。
當你的課件檢測到它所觀察的文件被寫入時,它會做什麼?例如,如果它執行對另一個對象的調用,那麼你可以使用一個模擬對象來檢查它是否被正確的參數調用,例如,寫入文件的新批量數據。
觀察是如何發生的?數據寫入時,您是在輪詢文件還是通知您的班級? –
嗨。觀察班觀察文件大小。作家是有問題的對象。 – gilgamash