【发布时间】:2011-10-19 21:51:07
【问题描述】:
我对 rspec 非常陌生,我正在尝试编写一个测试来确保创建的对象确实存在。这是我的测试现在的样子:
require 'spec_helper'
describe "UserService" do
describe ".new" do
it "should create a UserService object" do
service = UserService.new
service.should_not be_nil
end
end
end
问题是,我在运行测试时得到了这个输出:
1) UserService.new should create a UserService object
Failure/Error: service = UserService.new
Errno::ECONNREFUSED:
Connection refused - connect(2)
# ./spec/requests/user_service_spec.rb:6:in `new'
# ./spec/requests/user_service_spec.rb:6:in `block (3 levels) in <top (required)>'
我预计此时连接会被拒绝,但我怎样才能测试它而不是破坏测试呢?或者,我看到的是正确的输出吗?谢谢!
【问题讨论】:
-
我们需要更多关于
UserService是的信息。为什么它连接到某个地方? -
不确定这是否真的相关。我要测试的只是确保它成功连接。这应该适用于任何事情,无论服务实际做什么。我知道连接失败的原因,并对其进行了修复,但我正在尝试测试如何针对这种情况(无法连接)正确地进行测试失败
-
您是在问如何在 rSpec 中测试异常,即测试需要异常,如果抛出异常,则测试成功?
-
我想我自己找到了在 rspec 中执行此操作的最佳方法。我的问题是在 UserService.new 无法访问用户服务时抛出错误(服务器已关闭)。我将测试中的两行替换为:
UserService.new should_not raise_error
标签: ruby-on-rails rspec rspec2 rspec-rails