在单元测试中,如何设置 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)
关于go - 使用 redigomock 测试事务(MULTI)命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339883/