💻

Mockkでcompanion objectに定義されたメソッドをmockする

2020/09/30に公開

次のようなKotlinのcompanion objectに定義されたメソッドをmockしたいとする。

 class Foo {
     companion object {
         fun bar(): String = ""
     }
 }

この場合、mockkではmockkObjectを使用してmockする(mockkのバージョンは1.10.0で確認)。

 @Before
 fun setup() {
     mockkObject(Foo)
 }
 
 @Test
 fun fooTest {
     every { Foo.bar() } returns "Hello"
     Truth.assertThat(Foo.bar()).isEqualTo("Hello")
 }

今回mockkStaticでmockできなかったので調べたが、issueが上がっているので対応されるかもしれない。

参考

Discussion