==============================================================================
SUITE test,test/unit/helpers,test/unit,test/performance,test/functional (SEED 49459)
==============================================================================
ActionController::TestCase
ActionDispatch::IntegrationTest
ActionView::TestCase
ActiveRecord::TestCase
ActiveSupport::TestCase
ProductTest
test_image_url 0:00:00:163 ERROR
wrong number of arguments (1 for 0)
Exception `ArgumentError' at:
/home/led/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/active_support/testing/setup_and_teardown.rb:35:in `block in run'
/home/led/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/active_support/callbacks.rb:408:in `_run_setup_callbacks'
/home/led/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
/home/led/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/active_support/testing/setup_and_teardown.rb:34:in `run'
test_product_attributes_must_not_be_empty 0:00:00:317 PASS
test_product_must_be_postive_price 0:00:00:326 PASS
ProductsHelperTest
==============================================================================
pass: 2, fail: 0, error: 1
total: 3 tests with 10 assertions in 0.3286295 seconds
==============================================================================
rake aborted!
Command failed with status (1): [/home/led/.rvm/rubies/ruby-1.9.2-p290/bin/...]
Tasks: TOP => test:units
(See full trace by running task with --trace)
我的单元测试:
require 'test_helper'
class ProductTest < ActiveSupport::TestCase
def new_product
product = Product.new(:title => "MyBook",
:description => "Famouse myBook",
:image_url => "zz.jpg")
end
test "product attributes must not be empty" do
product = Product.new
assert product.invalid?
assert product.errors[:title].any?
assert product.errors[:description].any?
assert product.errors[:price].any?
assert product.errors[:image_url].any?
end
test "product must be postive price" do
product = Product.new(:title => "MyBook",
:description => "Famouse myBook",
:image_url => "zz.jpg")
product.price = -1
assert product.invalid?
assert_equal "must be greater than or equal to 0.01",
product.errors[:price].join('; ')
product.price = 0
assert product.invalid?
assert_equal "must be greater than or equal to 0.01",
product.errors[:price].join('; ')
product.price = 1
assert product.valid?
end
test "image url" do
ok = %w{fred.gif fred.jpg fred.png FRED.JPG FRED.PNG FRED.GIF
http://a.b.c/x/y/z/fred.gif}
bad = %w{fred.doc fred.gif/more fred.gif.more}
ok.each do |name|
assert new_product(name).valid?, "#{name} shoudn't be invalid"
end
bad.each do |b|
assert new_product(name).invalid?, "#{name} shoudn't be valid"
end
end
end
编辑:祝贺
谢谢你帮我弄清楚什么是错的
require 'test_helper'
class ProductTest < ActiveSupport::TestCase
def new_product(image_url)
product = Product.new(:title => "MyBook",
:description => "Famouse myBook",
:price => 1 ,
:image_url => image_url)
end
test "product attributes must not be empty" do
product = Product.new
assert product.invalid?
assert product.errors[:title].any?
assert product.errors[:description].any?
assert product.errors[:price].any?
assert product.errors[:image_url].any?
end
test "product must be postive price" do
product = Product.new(:title => "MyBook",
:description => "Famouse myBook",
:image_url => "zz.jpg")
product.price = -1
assert product.invalid?
assert_equal "must be greater than or equal to 0.01",
product.errors[:price].join('; ')
product.price = 0
assert product.invalid?
assert_equal "must be greater than or equal to 0.01",
product.errors[:price].join('; ')
product.price = 1
assert product.valid?
end
test "image url" do
ok = %w{fred.gif fred.jpg fred.png FRED.JPG FRED.PNG FRED.GIF
http://a.b.c/x/y/z/fred.gif}
# bad = %w{fred.doc fred.gif/more fred.gif.more}
bad = %w{ fred.doc fred.gif/more fred.gif.more }
ok.each do |name|
assert new_product(name).valid?, "#{name} shouldn't be invalid"
end
bad.each do |name|
assert new_product(name).invalid?, "#{name} shouldn't be valid"
end
=begin
ok.each do |name|
assert new_product(name).valid?, "#{name} shoudn't be invalid"
end
bad.each do |name|
assert new_product(name).invalid?, "#{name} shoudn't be valid"
end
=end
end
end
你在rails 3.1中运行 红宝石1.9
感谢我们更多的力量
答案 0 :(得分:0)
我无法解决您的问题。因为您没有使用上面代码中的任何setup,teardown
方法。提供完整的测试用例或只检查方法setup
和teardown
有任何参数操作。这个问题只与此有关。