mockkのreturnsとanswersの違い

every {
  mock.time
} returns System.currentTimeMillis()
val a1 = mock.time
// なんか処理
val b1 = mock.time
every {
  mock.time
} answers { System.currentTimeMillis() }
val a2 = mock.time
// なんか処理
val b2 = mock.time

で挙動が違っていて、 returns だと宣言時の時刻で固定されて、 answers の場合は呼び出しのたびに評価される。 なので、a1 = b1となり、 a2 != b2 となる。