2012-03-15 128 views
0

如果我写这样的测试它的工作就好了其传递绿色Rails的测试失败

it "should have the right title" do 
     get 'view' 
     response.should have_selector('title', 
            :content => "View Snippets") 
    end 

,但对于同一页面格式的红色,它们shold测试是一回事吗?

http://dl.dropbox.com/u/15024055/CloudShot/shot_15032012_232654.png

require 'spec_helper' 

describe "SnippetsPages" do 

    describe "New Snippet pages" do 
     before { get 'new'} 

     it { should have_selector('h1', content: 'New') } 
     it { should have_selector('title', content: full_title('New Snippet')) } 
    end 


    describe "View Snippets pages" do 
     before { get 'view' } 

     it { should have_selector('h1', content: 'View') } 
     it { should have_selector('title', content: full_title('View Snippets')) } 
    end 
end 

我不明白为什么我的测试是不是在这里工作的帮手:

def full_title(page_title) 
    base_title = "Sample App" 
    if page_title.empty? 
     base_title 
    else 
     page_title 
    end 
end 

的ErrorMessage

Failures: 

    1) SnippetsPages New Snippet pages 
    Failure/Error: it { should have_selector('h1', content: 'New') } 
     expected following output to contain a <h1>New</h1> tag: 
     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
     <html><body><p>New Snippet pages</p></body></html> 
    # ./spec/requests/snippets_pages_spec.rb:8:in `block (3 levels) in <top (required)>' 

    2) SnippetsPages New Snippet pages 
    Failure/Error: it { should have_selector('title', content: full_title('New Snippet')) } 
     expected following output to contain a <title>Ruby on Rails Tutorial Sample App | New Snippet</title> tag: 
     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
     <html><body><p>New Snippet pages</p></body></html> 
    # ./spec/requests/snippets_pages_spec.rb:9:in `block (3 levels) in <top (required)>' 

    3) SnippetsPages View Snippets pages 
    Failure/Error: it { should have_selector('h1', content: 'View') } 
     expected following output to contain a <h1>View</h1> tag: 
     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
     <html><body><p>View Snippets pages</p></body></html> 
    # ./spec/requests/snippets_pages_spec.rb:16:in `block (3 levels) in <top (required)>' 

    4) SnippetsPages View Snippets pages 
    Failure/Error: it { should have_selector('title', content: full_title('View Snippets')) } 
     expected following output to contain a <title>Ruby on Rails Tutorial Sample App | View Snippets</title> tag: 
     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
     <html><body><p>View Snippets pages</p></body></html> 
    # ./spec/requests/snippets_pages_spec.rb:17:in `block (3 levels) in <top (required)>' 

Finished in 1.12 seconds 
11 examples, 4 failures 

Failed examples: 

rspec ./spec/requests/snippets_pages_spec.rb:8 # SnippetsPages New Snippet pages 
rspec ./spec/requests/snippets_pages_spec.rb:9 # SnippetsPages New Snippet pages 
rspec ./spec/requests/snippets_pages_spec.rb:16 # SnippetsPages View Snippets pages 
rspec ./spec/requests/snippets_pages_spec.rb:17 # SnippetsPages View Snippets pages 

更新

更换获取与访问没有工作她是一些更多的信息。

--Versions--

➜ sample_app git:(modeling-users) ✗ rails -v 
Rails 3.1.3 

➜ sample_app git:(modeling-users) ✗ ruby -v 
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] 

➜ sample_app git:(modeling-users) ✗ rspec -v 
2.6.4 

--End Versions--

gemfile 

source 'http://rubygems.org' 

gem 'rails', '3.1.3' 
gem 'bootstrap-sass', '2.0.0' 

# Bundle edge Rails instead: 
# gem 'rails',  :git => 'git://github.com/rails/rails.git' 

gem 'sqlite3' 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.1.5' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

group :development do 
    gem 'rspec-rails' 
    gem 'spork' 
    gem 'guard-rspec', '0.5.5' 
    gem 'annotate', '~> 2.4.1.beta' 
end 

group :test do 
    gem 'rspec-rails' 
    gem 'spork' 
    gem 'webrat' 
    gem 'capybara', '1.1.2' 
    gem 'rb-inotify', '0.8.8' 
    gem 'libnotify', '0.5.9' 
end 

➜sample_app的git:(模拟用户)✗宝石列表

*** LOCAL GEMS *** 

actionmailer (3.1.3) 
actionpack (3.1.3) 
active_reload (0.6.1) 
active_utils (1.0.3, 1.0.2) 
activemerchant (1.20.1) 
activemodel (3.1.3) 
activerecord (3.1.3) 
activeresource (3.1.3) 
activesupport (3.1.3) 
acts_as_list (0.1.4) 
akami (1.0.0) 
annotate (2.4.1.beta1) 
ansi (1.4.2) 
arel (3.0.0, 2.2.3, 2.2.1) 
bcrypt-ruby (3.0.1) 
bootstrap-sass (2.0.0) 
braintree (2.13.4) 
builder (3.0.0) 
bundler (1.0.21) 
cancan (1.6.7) 
capybara (1.1.2) 
childprocess (0.3.1) 
cocaine (0.2.1) 
coffee-rails (3.1.1) 
coffee-script (2.2.0) 
coffee-script-source (1.2.0) 
commonjs (0.2.0) 
deface (0.7.2) 
devise (1.4.8) 
diff-lcs (1.1.3) 
erubis (2.7.0) 
execjs (1.3.0) 
ffaker (1.12.1) 
ffi (1.0.11) 
githug (0.1.0) 
grit (2.4.1) 
guard (1.0.1) 
guard-rspec (0.5.5) 
gyoku (0.4.4) 
highline (1.6.8) 
hike (1.2.1) 
httpi (0.9.6, 0.9.5) 
i18n (0.6.0) 
jquery-rails (1.0.19) 
json (1.6.5) 
kaminari (0.13.0) 
less (2.0.9) 
less-rails (2.1.6) 
libnotify (0.5.9) 
libv8 (3.3.10.4 x86-linux) 
mail (2.3.0) 
meta_search (1.1.1) 
mime-types (1.17.2) 
money (3.7.1) 
multi_json (1.1.0, 1.0.4) 
my_string_exstenderz (0.0.1) 
nested_set (1.6.8) 
nokogiri (1.5.0) 
nori (1.1.0, 1.0.2) 
orm_adapter (0.0.6) 
paperclip (2.5.0) 
polyamorous (0.5.0) 
polyglot (0.3.3) 
rack (1.3.6) 
rack-cache (1.1) 
rack-mount (0.8.3) 
rack-ssl (1.3.2) 
rack-test (0.6.1) 
rails (3.1.3) 
railties (3.1.3) 
rake (0.9.2.2) 
rb-inotify (0.8.8) 
rdoc (3.12) 
rspec (2.6.0) 
rspec-core (2.6.4) 
rspec-expectations (2.6.0) 
rspec-mocks (2.6.0) 
rspec-rails (2.6.1) 
rubygems-update (1.8.17) 
rubyzip (0.9.6.1) 
sass (3.1.15, 3.1.14, 3.1.12) 
sass-rails (3.1.5) 
savon (0.9.9, 0.9.7) 
selenium-webdriver (2.20.0) 
spork (1.0.0rc1) 
spree (1.0.0) 
spree_api (1.0.0) 
spree_auth (1.0.0) 
spree_cmd (1.0.0) 
spree_core (1.0.0) 
spree_dash (1.0.0) 
spree_promo (1.0.0) 
spree_sample (1.0.0) 
sprockets (2.0.3) 
sqlite3 (1.3.5) 
state_machine (1.1.1) 
stringex (1.3.2, 1.3.0) 
therubyracer (0.9.10) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
turn (0.8.2) 
twitter-bootstrap-rails (2.0.3) 
tzinfo (0.3.31) 
uglifier (1.2.3) 
warden (1.0.6) 
wasabi (2.1.0, 2.0.0) 
webrat (0.7.3) 
xpath (0.1.4) 

回答

0

it电话匹配器subject

我认为,在第二种情况下subject不是response

如果您正在使用水豚,只需将get替换为visit,一切都会很好。 至少我收到类似的错误,如果我替换visitget在我的规格:)

如果这样不会帮助,请添加更多信息到您的环境主题。如红宝石和导轨版本,使用宝石等。

+0

已更新我的帖子,以获取更多信息。 – Darkmage 2012-03-16 10:28:54