タイトルの通り。
redisアクセスするScalaコードのユニットテストでつかって便利だった。
wiremockみたいにredisのプロトコルをモックしてくれるやつ。
使い方
READMEに書いてあるとおりで特に詰まることはない。 以下はscalatestから呼び出すサンプル。redisクライアントはscala-redisを利用。
class RedisSpec extends AnyFunSpec with BeforeAndAfterAll { // モックサーバ を宣言 val redisMockServer: RedisServer = RedisServer.newRedisServer() // テスト開始時にモックサーバを起動 override def beforeAll(): Unit = { redisMockServer.start() super.beforeAll() } // テスト終了時にモックサーバを停止 override def afterAll(): Unit = { redisMockServer.stop() super.afterAll() } // Redisクライアントを宣言 // モックサーバの起動後にhostやportを取得したいのでlazy valとし // クライアントが最初に呼び出されるときにgetHost, getBindPortする lazy val redisClient = new RedisClient(redisMockServer.getHost, redisMockServer.getBindPort) it("example") { // given val key = "key" val value = "jedis-mock is very useful" // when redisClient.set(key, value) // then val expected = Some(value) assert(redisClient.get(key) == expected) } }
呼び出しのN回目以降はエラーを吐くとかもできるみたいなので、
エラーハンドリングがうまいことできているかみたいなのも一応検査できるっぽい。