[英]How does Powermockito whenNew work?
幾天前,我已經測試了whenNew
提供的令人難以置信的功能,它使我們可以“攔截”測試環境中任何類的構造函數調用並返回例如。 給定類的模擬實例。 我想知道背后的原理是什么? 我首先想到的是字節碼操作,以便向構造函數注入適當的代碼塊,但是,嘿-構造函數不會返回創建的實例,因此這顯然不是答案。
那會是什么? AOP-攔截構造函數調用並將其替換為返回給定的對象語句?
Powermock修改了調用類(具有new SomeMockedClass(...)
)中的字節碼,以便它恢復並使用傳遞給whenNew
的模擬實例。
但是,這並不是可以由模擬庫實現的唯一方法。 JMockit也模擬構造函數,但是它通過修改實際的構造函數來實現(當然,它仍然返回void
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.