2012-05-01 4 views
4

Получение сообщение об ошибке после выполнения командынеопределенный метод `утверждают» в рубине на рельсах

тест грабли: блоки

undefined method `assert' for ProductTest:Class (NoMethodError) 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require' 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require' 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:236:in `load_dependency' 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require' 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:10 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9:in `each' 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `select' 
    from /home/mayank/src/proj/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4 
rake aborted! 

Исходный код приложения, как показано ниже. Его выдача ошибки в строке утверждается.

require 'test_helper' 

class ProductTest < ActiveSupport::TestCase 
    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? 
    # test "the truth" do 
    # assert true 
    # end 
end 

ответ

9

Должно быть:

class ProductTest < ActiveSupport::TestCase 

    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[:image_url].any? 
    assert product.errors[:price].any? 
    end 
end 

так же, как в книге Agile Web Development with Rails.

0

использовать внешний класс для этой команды

include Test::Unit::Assertions 

require 'rubygems' 
require 'selenium-webdriver' 
gem "test-unit" 
require 'test/unit' 

include Test::Unit::Assertions 

class Transaction 

     def createassert() 

      assert(driver.find_element(:id, "amount").text.include?("$244.00")," amount not valid") 

     end 

class Evaluate 

tra=Transaction.new 
tra.createassert() 

end 
Смежные вопросы