使用 redigomock 测试事务(MULTI)命令

Test a transaction (MULTI) command with redigomock

在单元测试中,如何设置 redigomock 以测试包含多个命令的 MULTI 调用?

这没有真正的诀窍。我在 redigomock 测试中找到了一个例子,然后发现我有一个错字,它导致了一个永远不会返回的错误(可能是一个错误)。供参考,

https://github.com/rafaeljusto/redigomock/blob/master/redigomock_test.go#L501(TestDoFlushesQueue)

显示了一个使用 MULTI 的测试。如果你使用 go-check,它会变成类似

connection := redigomock.NewConn()
cmd1 := connection.Command("MULTI")
cmd2 := connection.Command("SET", "person-123", 123456)
cmd3 := connection.Command("EXPIRE", "person-123", 1000)
cmd4 := connection.Command("EXEC").Expect([]interface{}{"OK", "OK"})
c.Check(connection.Stats(cmd1), Equals, 1)
c.Check(connection.Stats(cmd2), Equals, 1)
c.Check(connection.Stats(cmd3), Equals, 1)
c.Check(connection.Stats(cmd4), Equals, 1)

(如果有人好奇,这里是 PR,因此打字错误会导致可检测到的错误 https://github.com/rafaeljusto/redigomock/pull/21