好的,所以这里是交易。阅读Rails教程。我们正在运行一个测试环境,以确保我们想要显示在我们网页上的东西正在实现。使用pages_controller_spec.rb文件执行此操作。这是我们通过的三个参数之一:rspec测试错误
describe "GET 'home'" do
it "returns http success" do
get 'home'
response.should be_success
end
it "should have the right title" do
get 'home'
response.should has_selector("title",
:content => "Ruby on Rails Tutorial Sample App | Home")
end
所有三项测试都是相同的。当我运行rspec spec /从命令行(我正在使用windows vista)时,我在所有三个测试中得到这个错误:
1)PagesController GET'home'应该有正确的标题 ←[31mFailure/Error: ←[0米←[31mresponse.should have_selector( “标题”,←[0米 ←[31mNoMethodError←[0米 ←[31mundefined方法has_selector?' for #<ActionController::TestResponse:0x4d71bd8>←[0m ←[36m # ./spec/controllers/pages_controller_spec.rb:13:in
块(3级) 在“←[0米
正如你可以看到,我没有使用任何名为has_selector的函数,而是使用了has_selector,这是从哪里来的?有谁知道如何解决它?我已经重复检查了两天的代码,以确保我的示例与视频相匹配,并且文本被检查rspec在实际的网页上是相同的。我的意思是,嘿,这些页面在启动服务器后甚至可以正常显示。所以我完全没有线索。最接近我的答案是在另一个论坛上,有人提到他们在第一个“描述”后忘记在顶部附近添加“render_views”。仔细检查,我也得到了它需要的地方。 伤心的程序员
(编辑)在与别人交谈之后,他们说它看起来像该方法尚未被ruby加载。考虑到输出中关于“没有定义方法”的行,这对我有意义
好主意。在获得水豚运行后,输出变为: '1)PagesController GET'home'应该有正确的标题 ←[31mFailure/Error:←[0m←[31mresponse.should have_selector(“title”,← [0m ←[31mexpected css“title”return something←[0m ←[36m#./spec/controllers/pages_controller_spec.rb:13:in'block(3 levels) in'← [0米” 仍不能确定为什么它说,它预计的CSS‘标题’返回的东西我会继续与一些代码乱搞看看与发生的情况:。文本的东西 –
2012-02-05 20:40:03
好吧,我受够回到这个项目上,我看到很多不一致的情况,这就是我得到的使用屏幕演员,然后尝试通过更新的屏幕演示书来找出错误。 (迈克尔哈特尔)这一次我会从这本书开始。对不起,是一个痛苦,浪费你的时间。首先我应该做到这一点。 (即使我学了很多额外的东西) – 2012-02-05 21:48:07