bra*_*boy 5 ruby testing ruby-on-rails-3
我正在使用 puts 命令在我的应用程序中打印一些自定义消息。但是,我不希望这些出现在我的测试输出中。所以,我尝试了一种存根的方法,puts
如下所示。但它仍然输出我的消息。我究竟做错了什么 ?
stubs(:puts).returns("") #Did not work out
Object.stubs(:puts).returns("") #Did not work out either
puts.stubs.returns "" #Not working as well
Kernel.stubs(:puts).returns "" #No luck
Run Code Online (Sandbox Code Playgroud)
我在用 Test::Unit
您可能需要在调用puts
. 例如,如果您正在调用类puts
的实例方法User
,请尝试:
user = User.new
user.stubs(:puts)
user.some_method_that_calls_puts
Run Code Online (Sandbox Code Playgroud)
当您尝试puts
在顶级执行范围内进行测试时,这同样适用:
self.stubs(:puts)
Run Code Online (Sandbox Code Playgroud)
我要做的是定义一个自定义日志方法(现在基本上调用 put),您可以在测试中轻松模拟或静默该方法。
这也让您可以选择稍后使用它执行更多操作,例如记录到文件。
编辑:或者,如果您确实想要存根 put,并且例如在实例方法中调用它,则可以只对该类的实例存根 put。
归档时间: |
|
查看次数: |
2731 次 |
最近记录: |