簡體   English   中英

新版本工作時Powermockito如何工作?

[英]How does Powermockito whenNew work?

幾天前,我已經測試了whenNew提供的令人難以置信的功能,它使我們可以“攔截”測試環境中任何類的構造函數調用並返回例如。 給定類的模擬實例。 我想知道背后的原理是什么? 我首先想到的是字節碼操作,以便向構造函數注入適當的代碼塊,但是,嘿-構造函數不會返回創建的實例,因此這顯然不是答案。

那會是什么? AOP-攔截構造函數調用並將其替換為返回給定的對象語句?

Powermock修改了調用類(具有new SomeMockedClass(...) )中的字節碼,以便它恢復並使用傳遞給whenNew的模擬實例。

但是,這並不是可以由模擬庫實現的唯一方法。 JMockit也模擬構造函數,但是它通過修改實際的構造函數來實現(當然,它仍然返回void )。

暫無
暫無

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

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