0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

男坂Advent Calendar 2020

Day 10

KotlinのMockを使ったテストの実行時間

Posted at

mockKを使ったテスト実行の遅さが気になった。
そこで、自前Mock、Mockito、mockKで、以下のinterfaceのmockを生成させて、それぞれのテスト実行時間を測定してみた。

@Mockable
interface TodosRepository {
    suspend fun add(todo: Todo)
    suspend fun get(): Flow<List<Todo>>
    suspend fun update(todo: Todo)
    suspend fun remove(todo: Todo)
}

テスト実行時間の測定結果

image.png

TodosRepositoryTestが自前mockを使ったテスト。同じテストコードを5回実行している。

初回のテスト実行時間
mockK(1.8s) > Mockito(174ms) > 自前Mock(19ms)

2回目以降のテスト実行時間(平均)
mockK(34.5ms) > 自前Mock(20.25ms) > Mockito(15ms)

まとめ

  • 初回のテスト実行時間は、自前Mockが一番短い。
  • 2回目以降ならMockitoが一番短い
  • mockKもMockitoも、2回目以降は、1回目よりも格段に実行時間は短い。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?