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

标签 go mocking redigo

在单元测试中,如何设置 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/

相关文章:

c++ - 使用 throw() 说明符模拟方法

go - 如何在 golang 中动态命名结构项?

go - 如何在 redisearch-go (Golang) 中向 redigo 客户端提供密码

go - Redigo Redis Pool 真的应该是一个全局变量吗?

git - 如何将 go.mod 中的 Go 模块依赖项指向 repo 中的最新提交?

去获取父目录

java - 如何使用 JMockit 模拟正在测试的方法中创建的本地对象

string - Golang 中的 Scanln 不接受空格

go - 当我的通配符参数中有双斜杠时,为什么 Gorilla mux 会重定向?

testing - Golang 与 Martini : Mock testing example