【发布时间】:2014-02-10 21:25:14
【问题描述】:
我目前通过以下方式使用记录器:
def log_stuff
logger.info { 'Info log message' }
logger.debug { expesive_action }
end
但我想知道记录器是否收到带有 RSpec 的正确消息。
如果我只是将日志行传递给输入,这将很容易:
# logger.info('Info log message')
expect(logger_mock).to receive(:info).with('Info log message')
但我想不出一种方法可以用块语法做这样的事情。
我特别想使用这种语法,这样expensive_action 只有在日志级别设置为 DEBUG 时才会被调用。
【问题讨论】:
-
而且在测试之前只计算昂贵的操作以便您测试......什么,调试功能有效?
-
我不明白这个问题。我当然可以在测试中运行昂贵的_action,但我目前不知道如何根据块的评估来验证结果。
-
我需要将输入值与方法进行比较。使用模拟很容易。但是,只有当我将值传递给方法而不是块时。那么你能提供一个具体的例子来说明你的建议吗?