3

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

4

1 回答 1

1

这没有真正的技巧。我在 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

于 2016-03-31T20:22:31.460 回答