Ruby 如何在minitest输出中显示sinatra错误和其他变量

Ruby 如何在minitest输出中显示sinatra错误和其他变量,ruby,unit-testing,sinatra,minitest,Ruby,Unit Testing,Sinatra,Minitest,我正在使用minitest测试和编写sinatra应用程序。目前,我使用last_response.status通过以下方式查看请求发生了什么: assert last_response.ok?, "Status 200 expected but was #{last_response.status}." 显示错误,如“状态200预期但为500”。但我想在Rack ENV中显示sinatra.error,如: sinatra.error #<ArgumentError: wrong nu

我正在使用minitest测试和编写sinatra应用程序。目前,我使用last_response.status通过以下方式查看请求发生了什么:

assert last_response.ok?, "Status 200 expected but was #{last_response.status}."
显示错误,如“状态200预期但为500”。但我想在Rack ENV中显示sinatra.error,如:

sinatra.error #<ArgumentError: wrong number of arguments (1 for 2)>
但它抛出了一个“调用#的私有方法'error'错误”


如何显示sinatra错误输出中变量的值?

您可以使用
puts last\u response.errors
显示最后一次响应的机架错误消息

您可以使用
put last_response.errors
显示上次响应的机架错误消息

请尝试上次响应。发送(:error)。抛出无方法错误,并且我在中找不到发送方法。你在哪里找到的?这不是一个机架方法。它是
Object#send
。您可以使用它访问私有方法。如果未定义
发送
,您也可以尝试
对象#uu_u发送uu
。它会抛出“尝试创建过程对象而无块”错误。虽然我试过了,但我还没有学会程序。如果有问题的话,你介意指导我ruby的进程吗。我的意思是,我在哪里可以彻底了解程序?尝试
last\u response.send(:error)
。抛出一个无方法错误,而且我在中找不到send方法。你在哪里找到的?这不是一个机架方法。它是
Object#send
。您可以使用它访问私有方法。如果未定义
发送
,您也可以尝试
对象#uu_u发送uu
。它会抛出“尝试创建过程对象而无块”错误。虽然我试过了,但我还没有学会程序。如果有问题的话,你介意指导我ruby的进程吗。我的意思是,我在哪里可以彻底学习procs?非常感谢,现在我使用
assert last_response.ok?,“预期状态200,但它是{last_response.Status}.\n#{last_response.errors.split(“\n”).first}”
,它在一行中显示了我,具体是什么导致了500错误。为什么?我使用错误只是为了调试愚蠢的错误。我不期望它们,在我通常的测试代码中使用它们。对,这里也一样。但现在我在用户创建操作方面遇到了问题,sinatra抱怨ArgumentError,我认为这是一个愚蠢的错误。我希望能够在测试中检查它(2代表3或1代表3等),而无需打开浏览器。不管怎么说,这让我觉得我应该再次睁开眼睛和头脑。我的意思是,我尝试了上一个错误,但毕竟没有错误。再次感谢。非常感谢,现在我使用
assert last_response.ok?,“预期状态200,但它是{last_response.Status}.\n{last_response.errors.split(“\n”).first}”
,它在一行中显示我,是什么具体导致了500个错误。为什么?我使用错误只是为了调试愚蠢的错误。我不期望它们,在我通常的测试代码中使用它们。对,这里也一样。但现在我在用户创建操作方面遇到了问题,sinatra抱怨ArgumentError,我认为这是一个愚蠢的错误。我希望能够在测试中检查它(2代表3或1代表3等),而无需打开浏览器。不管怎么说,这让我觉得我应该再次睁开眼睛和头脑。我的意思是,我尝试了上一个错误,但毕竟没有错误。再次感谢你。
assert last_response.ok?, "#{last_response.error}."