第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

模擬和存根之間有什么區(qū)別?

模擬和存根之間有什么區(qū)別?

模擬和存根之間有什么區(qū)別?我已經(jīng)閱讀過各種關(guān)于模擬和測試中存根的文章,包括Martin Fowler的Mocks Are Not Stubs,但仍然不明白其中的區(qū)別。
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

前言

對象有幾種定義,不是真實的。一般術(shù)語是測試雙倍。這個術(shù)語包括:虛擬,存根,模擬

參考

根據(jù)Martin Fowler的文章

  • 虛擬對象傳遞但從未實際使用過。通常它們僅用于填充參數(shù)列表。

  • 對象實際上有工作實現(xiàn),但通常需要一些使它們不適合生產(chǎn)的快捷方式(內(nèi)存數(shù)據(jù)庫就是一個很好的例子)。

  • 存根提供了在測試期間進行的調(diào)用的固定答案,通常不會對測試中編程的任何內(nèi)容做出任何響應(yīng)。存根還可以記錄有關(guān)呼叫的信息,例如記住它'發(fā)送'的消息的電子郵件網(wǎng)關(guān)存根,或者可能只記錄它'發(fā)送'的消息。

  • 模擬是我們在這里所討論的:預(yù)編程的對象具有預(yù)期,形成了預(yù)期接收的調(diào)用的規(guī)范。

樣式

Mocks vs Stubs =行為測試與狀態(tài)測試

原理

根據(jù)每次測試只測試一件事的原則,在一次測試中可能有幾個存根,但通常只有一個模擬。

生命周期

使用存根測試生命周期:

  1. 設(shè)置 - 準備正在測試的對象及其存根協(xié)作者。

  2. 練習(xí) - 測試功能。

  3. 驗證狀態(tài) - 使用斷言檢查對象的狀態(tài)。

  4. 拆解 - 清理資源。

使用模擬測試生命周期:

  1. 設(shè)置數(shù)據(jù) - 準備正在測試的對象。

  2. 設(shè)置期望 - 準備主要對象正在使用的模擬期望。

  3. 練習(xí) - 測試功能。

  4. 驗證期望 - 驗證是否已在mock中調(diào)用了正確的方法。

  5. 驗證狀態(tài) - 使用斷言檢查對象的狀態(tài)。

  6. 拆解 - 清理資源。

摘要

模擬和存根測試都給出了問題的答案:結(jié)果是什么?

使用模擬測試也對以下方面感興趣:結(jié)果如何實現(xiàn)?


查看完整回答
反對 回復(fù) 2019-08-28
?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

以下是對每個示例的描述,然后是真實世界的示例。

  • 虛擬 - 只是虛假的價值來滿足API。

    示例:如果您正在測試一個類的方法,該類在構(gòu)造函數(shù)中需要許多強制參數(shù)而對測試沒有影響,那么您可以創(chuàng)建虛擬對象以創(chuàng)建類的新實例。

  •  - 創(chuàng)建一個可能依賴于某些外部基礎(chǔ)結(jié)構(gòu)的類的測試實現(xiàn)。(這是很好的做法,你的單元測試也不要實際上外部基礎(chǔ)設(shè)施交互。)

    示例:創(chuàng)建用于訪問數(shù)據(jù)庫的虛假實現(xiàn),將其替換為in-memory集合。

  • 存根 - 覆蓋返回硬編碼值的方法,也稱為state-based。

    示例:您的測試類取決于Calculate()需要5分鐘才能完成的方法。您可以使用返回硬編碼值的存根替換其實際實現(xiàn),而不是等待5分鐘; 只占一小部分時間。

  • 模擬 - 非常相似Stubinteraction-based不是基于狀態(tài)。這意味著您不希望Mock返回某個值,而是假設(shè)方法調(diào)用的特定順序。

    示例:您正在測試用戶注冊類。打電話后Save,應(yīng)該打電話SendConfirmationEmail。

Stubs并且Mocks實際上是子類型Mock,包括交換實際實現(xiàn)和測試實現(xiàn),但出于不同的,特定的原因。


查看完整回答
反對 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 662 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號