国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一文看懂單元測試中的打樁

這篇具有很好參考價值的文章主要介紹了一文看懂單元測試中的打樁。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、概念

二、目的

三、方法

編譯時打樁

鏈接時打樁

運(yùn)行時打樁


一、概念

函數(shù)打樁,就是將一個函數(shù)用另一個函數(shù)實現(xiàn)(樁代碼)進(jìn)行替換,以達(dá)到在原有函數(shù)入口的位置執(zhí)行新的實現(xiàn)。

二、目的

函數(shù)打樁的目的一般是隔離、占位和控制。

  • 隔離是指將測試任務(wù)從產(chǎn)品項目中分離出來,使之能夠獨(dú)立編譯、鏈接,并獨(dú)立運(yùn)行。隔離的基本方法就是打樁,將測試任務(wù)之外的,并且與測試任務(wù)相關(guān)的代碼,用樁來代替,從而實現(xiàn)分離測試任務(wù)。
  • 占位就是用樁對一些未實現(xiàn)的函數(shù)進(jìn)行占位,多見于協(xié)同開發(fā)中,對于其他人完成的函數(shù)可以先使用樁函數(shù)進(jìn)行占位。
  • 控制是指在測試時,人為設(shè)定相關(guān)代碼的行為,使之符合測試需求。

三、方法

編譯時、鏈接時、運(yùn)行時。

編譯時打樁

用宏定義#define,在預(yù)處理時進(jìn)行字符串替換,將原函數(shù)定義成樁函數(shù)的形式。同時可以使用條件編譯來控制編譯選項。

鏈接時打樁

鏈接時打樁就是調(diào)用的函數(shù)庫替換。將樁函數(shù)定義到新的庫文件中,并在原代碼基礎(chǔ)上增加條件編譯選項,屏蔽原有的庫,采用樁函數(shù)庫。

運(yùn)行時打樁

運(yùn)行時打樁就是函數(shù)地址替換。這種方法要復(fù)雜一點(diǎn),但是不需要對原有的代碼進(jìn)行修改,而是額外增加了打樁和還原的操作,在進(jìn)行單元測試時也常用。

簡單來說,就是讀取到原函數(shù)指令的地址,并讀取樁函數(shù)的地址,并使用jmp命令從原函數(shù)跳轉(zhuǎn)到樁函數(shù)去,以實現(xiàn)打樁。需要實現(xiàn)類似

int install_stub(void *orig_f, void *stub_f)
int uninstall_stub(void *stub_f)

參考優(yōu)秀博客:

stub | Simest's Blog (sim41.com)

認(rèn)識單元測試中的打樁_wangwencong的博客-CSDN博客_單元測試 打樁文章來源地址http://www.zghlxwxcb.cn/news/detail-443040.html

到了這里,關(guān)于一文看懂單元測試中的打樁的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一文看懂自動駕駛中的坐標(biāo)變換

    一文看懂自動駕駛中的坐標(biāo)變換

    在自動駕駛?cè)蝿?wù)中,我們通過各種傳感器對周圍環(huán)境進(jìn)行感知,獲取圖片。點(diǎn)云等各種數(shù)據(jù),由于傳感器的位置、數(shù)據(jù)的形式、不同數(shù)據(jù)的含義等差異,在進(jìn)行環(huán)境感知任務(wù)前,需要進(jìn)行坐標(biāo)、數(shù)據(jù)形式的統(tǒng)一,其中坐標(biāo)變換是極其重要的一環(huán)。 根據(jù)參照物的不同,坐標(biāo)系主

    2024年02月05日
    瀏覽(23)
  • 一文看懂電容的種類及其在電路中的作用

    一文看懂電容的種類及其在電路中的作用

    電容是一種電子元件,它的作用是存儲電荷能量。電容器由兩個導(dǎo)體板之間用電介質(zhì)隔開形成,導(dǎo)體板上分別帶有相反的電荷,在電場的作用下,一邊負(fù)一邊正,形成電容。電容的大小由電容器的尺寸、電介質(zhì)介電常數(shù)和導(dǎo)體板間距等因素決定,單位為法拉(F)。電容器在電子

    2024年02月11日
    瀏覽(39)
  • 【單元測試】一文讀懂java單元測試

    【單元測試】一文讀懂java單元測試

    單元測試 是軟件開發(fā)中常用的一種測試方法,用于驗證代碼的單個功能單元是否按照預(yù)期工作。 測試方法: 白盒測試(White Box Testing):在白盒測試中,測試人員了解代碼的內(nèi)部結(jié)構(gòu)和實現(xiàn)細(xì)節(jié),編寫測試用例來覆蓋不同的代碼路徑和邏輯條件。 黑盒測試(Black Box Testing)

    2024年04月17日
    瀏覽(15)
  • 一文讀懂java單元測試

    白盒測試(White Box Testing):在白盒測試中,測試人員了解代碼的內(nèi)部結(jié)構(gòu)和實現(xiàn)細(xì)節(jié),編寫測試用例來覆蓋不同的代碼路徑和邏輯條件。 黑盒測試(Black Box Testing):黑盒測試不考慮代碼的內(nèi)部實現(xiàn),而是基于需求規(guī)格說明或功能規(guī)范編寫測試用例,測試程序的輸入和輸出

    2024年02月04日
    瀏覽(24)
  • 一文搞定idea中的根目錄

    在IntelliJ IDEA中,一個項目只有一個 項目 根目錄(Project Root),這個根目錄在本地硬盤中存放著整個項目的內(nèi)容。但是,在IDEA的項目結(jié)構(gòu)中,可以有多個 內(nèi)容 根目錄(Content Root),這些內(nèi)容根目錄是相對于項目模塊(Module)而言的,內(nèi)容根目錄進(jìn)一步細(xì)分了項目中的不同部

    2024年03月19日
    瀏覽(20)
  • 單元測試基本概念

    單元測試一般是開發(fā)來做的,但是因為業(yè)務(wù)需要也曾涉及過單元測試。目前就單元測試的基礎(chǔ)概念做下總結(jié)。 單元測試是軟件開發(fā)中的一種測試方法,用于驗證程序中的最小可測單元——即代碼中的單個函數(shù)、方法或模塊。單元測試的目的是檢查單元(代碼的最小功能單元)

    2024年01月17日
    瀏覽(17)
  • 【一文清晰】單元測試到底是什么?應(yīng)該怎么做?

    【一文清晰】單元測試到底是什么?應(yīng)該怎么做?

    我是java程序員出身,后來因為工作原因轉(zhuǎn)到到了測試開發(fā)崗位。測試開發(fā)工作很多年后,現(xiàn)在是一名自由職業(yè)者 1、什么是單元測試 2、該怎么做單元測試 單元測試(unit testing),是指對軟件中的最小可測試單元進(jìn)行檢查和驗證。至于“單元”的大小或范圍,并沒有一個明確

    2024年02月07日
    瀏覽(15)
  • 一文掌握谷歌 C++ 單元測試框架 GoogleTest

    一文掌握谷歌 C++ 單元測試框架 GoogleTest

    GoogleTest GoogleTest(簡稱 GTest) 是 Google 開源的一個跨平臺的(Liunx、Mac OS X、Windows等)的 C++ 單元測試框架,可以幫助程序員測試 C++ 程序的結(jié)果預(yù)期。不僅如此,它還提供了豐富的斷言、致命和非致命判斷、參數(shù)化、”死亡測試”等等。 GoogleTest 官網(wǎng):https://google.github.io/go

    2024年02月03日
    瀏覽(16)
  • 單元測試之@Mock與@InjectMocks(一文搞懂)

    @Mock與@InjectMocks一般搭配組合使用,是單元測試必不可少的注解 @Mock:需要模擬的類,我們需要模擬哪些類,就用它修飾哪些類的變量,常用于第三方服務(wù)service @InjectMocks:要測試的類,使用@Mock修飾的對象,就是我們測試哪個類,就用它修飾對應(yīng)的變量,會整合使用@Mock修飾

    2024年02月06日
    瀏覽(24)
  • 一文搞懂Go gRPC服務(wù)Handler單元測試

    一文搞懂Go gRPC服務(wù)Handler單元測試

    在云原生時代和微服務(wù)架構(gòu)背景下,HTTP和RPC協(xié)議成為服務(wù)間通信和與客戶端交互的兩種主要方式。對于Go語言而言,標(biāo)準(zhǔn)庫提供了net/http/httptest包,為開發(fā)人員提供了便捷的方式來構(gòu)建服務(wù)端HTTP Handler單元測試的測試腳手架代碼,而無需真正建立HTTP服務(wù)器,讓開發(fā)人員可以聚

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包