First up in chain #2 is getting back (as close as possible) to where chain #1 left off. I am going to develop on my Lenovo s10-s netbook, so the first order of business becomes running my specs on a relatively new install Ubuntu 9.10.
I have already done some development on this netbook, so I do not have to install Ruby from scratch along with a bunch of gems. I also have CouchDB installed via apt-get (reported as 0.10.0-0ubuntu3).
So I run my specs, only to find a bunch of these:
...Bah! Did Haml remove my favorite feature of splitting attributes across lines à la:
64)
Haml::SyntaxError in 'recipe.haml a recipe without an image should not include an image'
Unbalanced brackets.
(haml):52:
/home/cstrom/repos/eee-code/spec/spec_helper.rb:26:in `new'
/home/cstrom/repos/eee-code/spec/spec_helper.rb:26:in `render'
./spec/views/recipe.haml_spec.rb:360:
%img{:src => "/images/amazon-126X32-w-logo.gif",No, Haml still has this, just not in the version in Karmic (2.0.9-1). After a quick
:border => 0}
apt-get remove
and gem install haml
, my view specs all pass.The last obstacle to passing specs are my app specs which reveal an oversight on my part. One of the outputs from chain #1 was the couch_docs gem. It was originally named couch_design_docs, but got a rename after its capabilities increased. The rename did not make it into my spec helpers (they use it to load fixtures and design documents). A quick search and replace and all of my unit tests are passing:
cstrom@whitefall:~/repos/eee-code$ rakeWith unit tests passing, it is time to have a look at the Cucumber integration tests. Sadly, the view ain't pretty:
(in /home/cstrom/repos/eee-code)
==
Sinatra app spec
.......................................................
Finished in 6.33 seconds
55 examples, 0 failures
==
Helper specs
..........................................................................................
Finished in 0.39 seconds
90 examples, 0 failures
==
View specs
..............................................................................................................
Finished in 7.72 seconds
110 examples, 0 failures
cstrom@whitefall:~/repos/eee-code$ cucumber features/site.featureMy fresh install of Cucumber onto this netbook is a more recent version than I used to originally develop the application. After consulting the Cucumber / Sinatra documentation, I find that I need to change:
Feature: Site
So that I may explore many wonderful recipes and see the meals in which they were served
As someone interested in cooking
I want to be able to easily explore this awesome site
Scenario: Quickly scanning meals and recipes accessible from the home page # features/site.feature:7
uninitialized constant Webrat::SinatraSession (NameError)
/home/cstrom/repos/eee-code/features/support/env.rb:35
/home/cstrom/.gem/ruby/1.8/gems/cucumber-0.6.2/bin/../lib/cucumber/rb_support/rb_language.rb:144:in `call'
/home/cstrom/.gem/ruby/1.8/gems/cucumber-0.6.2/bin/../lib/cucumber/rb_support/rb_language.rb:144:in `create_world'
/home/cstrom/.gem/ruby/1.8/gems/cucumber-0.6.2/bin/../lib/cucumber/rb_support/rb_language.rb:95:in `begin_rb_scenario'
/home/cstrom/.gem/ruby/1.8/gems/cucumber-0.6.2/bin/../lib/cucumber/rb_support/rb_language.rb:130:in `begin_scenario'
/home/cstrom/.gem/ruby/1.8/gems/cucumber-0.6.2/bin/../lib/cucumber/language_support/language_methods.rb:12:in `before'
/home/cstrom/.gem/ruby/1.8/gems/cucumber-0.6.2/bin/../lib/cucumber/step_mother.rb:296:in `before'
...
Webrat.configure do |config|To:
config.mode = :sinatra
end
World do
session = Webrat::SinatraSession.new
session.extend(Webrat::Matchers)
session.extend(Webrat::HaveTagMatcher)
session
end
Webrat.configure do |config|Simply put, I need to use rack to test now and alter the "world" (session) a bit. With that, I get:
config.mode = :rack
end
class MyWorld
include Rack::Test::Methods
include Webrat::Methods
include Webrat::Matchers
Webrat::Methods.delegate_to_session :response_code, :response_body
def app
Sinatra::Application
end
end
World{MyWorld.new}
cstrom@whitefall:~/repos/eee-code$ cucumber features/site.featureWhile this might not seem like progress, I am now failing where I want to—CouchDB it generating 500 failures because my views stink. I'll start fixing them tomorrow.
Feature: Site
So that I may explore many wonderful recipes and see the meals in which they were served
As someone interested in cooking
I want to be able to easily explore this awesome site
Scenario: Quickly scanning meals and recipes accessible from the home page # features/site.feature:7
Given 25 yummy meals # features/step_definitions/site.rb:1
And 1 delicious recipe for each meal # features/step_definitions/site.rb:30
And the first 5 recipes are Italian # features/step_definitions/site.rb:61
And the second 10 recipes are Vegetarian # features/step_definitions/site.rb:74
When I view the site's homepage # features/step_definitions/site.rb:87
HTTP status code 500 (RestClient::RequestFailed)
/usr/lib/ruby/1.8/net/http.rb:543:in `start'
./features/support/../../eee.rb:38:in `GET /'
(eval):2:in `visit'
./features/step_definitions/site.rb:88:in `/^I view the site.s homepage$/'
features/site.feature:13:in `When I view the site's homepage'
Then I should see the 10 most recent meals prominently displayed # features/step_definitions/site.rb:92
And the prominently displayed meals should include a thumbnail image # features/step_definitions/site.rb:99
And the prominently displayed meals should include the recipe titles # features/step_definitions/site.rb:103
When I click on the first meal # features/step_definitions/site.rb:108
Then I should see the meal page # features/step_definitions/site.rb:116
And the Italian category should be highlighted # features/step_definitions/site.rb:121
When I click on the recipe in the menu # features/step_definitions/site.rb:127
Then I should see the recipe page # features/step_definitions/site.rb:152
And the Italian category should be highlighted # features/step_definitions/site.rb:121
When I click the Italian category # features/step_definitions/site.rb:131
Then I should see 5 Italian recipes # features/step_definitions/site.rb:157
When I click the site logo # features/step_definitions/site.rb:112
Then I should see the homepage # features/step_definitions/site.rb:163
When I click the recipe link under the 6th meal # features/step_definitions/site.rb:135
Then I should see the recipe page # features/step_definitions/site.rb:152
And the Vegetarian category should be highlighted # features/step_definitions/site.rb:121
Day #1
No comments:
Post a Comment