[英]How to mock local variables using MockK
我有以下簡化代碼
class Foo() {
suspend fun bar() {
val headers = AtomicReference(Metadata())
val metadata = headers.get()
if (metadata.keys().size > 0) { // I want it to return a value specified in the test file
// ...
}
}
如何模擬AtomicReference
或Metadata
以便例如headers.get().keys().size
返回指定值而不是真實值?
您可以使用 Constructor Mocks 來模擬Metadata
的構造函數:
mockkConstructor(Metadata::class)
every { anyConstructed<Metadata>().keys() } returns mockedKeys
請注意,鍵的 mockedKeys 是您的測試數據。
見https://mockk.io/#constructor-mocks
此外,嘗試以不需要模擬任何構造函數的方式構建代碼(例如使用控制反轉),您會發現它在測試時會帶來好處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.