8.5 Iteration C5 - Caching 8.3 Iteration C3: Use a Helper to Format the Price
Demonstrate use of assert_select to test views.
Verify that the tests still pass.
rake test
Loaded suite /home/rubys/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/rake_test_loader
Started
ProductTest:
PASS image url (0.33s)
PASS product attributes must not be empty (0.01s)
PASS product is not valid without a unique title (0.01s)
PASS product is not valid without a unique title - i18n (0.01s)
PASS product price must be positive (0.01s)
Finished in 0.369054 seconds.
5 tests, 23 assertions, 0 failures, 0 errors, 0 skips
Loaded suite /home/rubys/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/rake_test_loader
Started
ProductsControllerTest:
PASS should create product (0.39s)
PASS should destroy product (0.01s)
PASS should get edit (0.11s)
PASS should get index (0.04s)
PASS should get new (0.02s)
PASS should show product (0.02s)
PASS should update product (0.02s)
StoreControllerTest:
PASS should get index (0.02s)
Finished in 0.643649 seconds.
8 tests, 11 assertions, 0 failures, 0 errors, 0 skips
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
Loaded suite /home/rubys/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/rake_test_loader
Started
ProductsControllerTest:
PASS should create product (0.33s)
PASS should destroy product (0.01s)
PASS should get edit (0.11s)
PASS should get index (0.04s)
PASS should get new (0.02s)
PASS should show product (0.02s)
PASS should update product (0.02s)
StoreControllerTest:
PASS should get index (0.12s)
Finished in 0.682153 seconds.
8 tests, 15 assertions, 0 failures, 0 errors, 0 skips
8.5 Iteration C5 - Caching 8.3 Iteration C3: Use a Helper to Format the Price