Agile Web Development with Rails, Edition 4

8.5 Iteration C5 - Caching 8.3 Iteration C3: Use a Helper to Format the Price

8.4 Iteration C4: Functional Testing

Demonstrate use of assert_select to test views.

Verify that the tests still pass.

rake test
Run options: 
 
# Running tests:
 
.....
 
Finished tests in 0.271763s, 18.3984 tests/s, 84.6327 assertions/s.
 
5 tests, 23 assertions, 0 failures, 0 errors, 0 skips
 
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
Run options: 
 
# Running tests:
 
........
 
Finished tests in 0.468520s, 17.0750 tests/s, 23.4782 assertions/s.
 
8 tests, 11 assertions, 0 failures, 0 errors, 0 skips
 
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

Add tests for layout, product display, and formatting, using counts, string comparisons, and regular expressions.

edit test/functional/store_controller_test.rb
require 'test_helper'
 
class StoreControllerTest < ActionController::TestCase
  test "should get index" do
    get :index
    assert_response :success
    assert_select '#columns #side a', minimum: 4
    assert_select '#main .entry', 3
    assert_select 'h3', 'Programming Ruby 1.9'
    assert_select '.price', /\$[,\d]+\.\d\d/
  end
 
end

Review fixure data

edit test/fixtures/products.yml
# Read about fixtures at
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
 
one:
  title: MyString
  description: MyText
  image_url: MyString
  price: 9.99
 
two:
  title: MyString
  description: MyText
  image_url: MyString
  price: 9.99
 
ruby: 
  title:       Programming Ruby 1.9
  description: 
    Ruby is the fastest growing and most exciting dynamic
    language out there.  If you need to get working programs
    delivered fast, you should add Ruby to your toolbox.
  price:       49.50
  image_url:   ruby.png 

Show that the tests pass.

rake test:functionals
Run options: 
 
# Running tests:
 
........
 
Finished tests in 0.475534s, 16.8232 tests/s, 31.5435 assertions/s.
 
8 tests, 15 assertions, 0 failures, 0 errors, 0 skips
 
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

8.5 Iteration C5 - Caching 8.3 Iteration C3: Use a Helper to Format the Price