ciao a tutti.
come al solito, sto andando avanti a piccoli passi nel creare
l''applicazione depot del libro "Sviluppare Applicazioni Web con
Rails".
Ora mi trovo nella fase di creazione dei test automatizzati.
Ma c''è una cosa che proprio non capisco:
Ho la seguente classe in ~/depot/test/unit/product_test.rb
require File.dirname(__FILE__) + ''/../test_helper''
class ProductTest < Test::Unit::TestCase
fixtures :products
def setup
@product = Product.find(1)
end
# Replace this with your real tests.
def test_create
assert_kind_of Product, @product
assert_equal 1, @product.id
assert_equal "Pragmatic Version Control", @product.titolo
assert_equal "Come utilizzare il controllo di versione",
@product.descrizione
assert_equal 29.95, @product.prezzo
assert_equal "http://www.alfonsomartone.itb.it/yescna.jpg",
@product.image_url
assert_equal "2005-01-26 00:00:00",
@product.date_available_before_type_cast
end
def test_update
assert_equal 29.95, @product.prezzo
@product.prezzo = 99.99
assert @product.save, @product.errors.full_messages.join("; ")
@product.reload
assert_equal 99.99, @product.prezzo
end
def test_destroy
@product.destroy
end
def test_validate
assert_equal 29.95, @product.prezzo
@product.prezzo = 0.00
assert !@product.save
assert_equal 1, @product.errors.count
assert_equal "deve essere positivo",
@product.errors.on(:prezzo)
end
end
Ora, da ciò che ho capito, per ogni metodo, Rails inizializza una
sessione a parte di test (quindi ricrea la struttura e testa ciò che
vogliamo nel metodo), quindi, secondo logica, l''ordine non è
importante.
Ma quando lancio il test con: ruby test/unit/product_test.rb ho il
seguente output:
Loaded suite test/unit/product_test
Started
..EE
Finished in 0.166103 seconds.
1) Error:
test_update(ProductTest):
ActiveRecord::RecordNotFound: Couldn''t find Product with ID=1
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:955:in
`find_one''
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:941:in
`find_from_ids''
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:382:in
`find'' test/unit/product_test.rb:7:in
`setup_without_fixtures''
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/fixtures.rb:548:in
`setup''
2) Error:
test_validate(ProductTest):
ActiveRecord::RecordNotFound: Couldn''t find Product with ID=1
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:955:in
`find_one''
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:941:in
`find_from_ids''
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:382:in
`find'' test/unit/product_test.rb:7:in
`setup_without_fixtures''
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/fixtures.rb:548:in
`setup''
4 tests, 8 assertions, 0 failures, 2 errors
Qualcuno sa dirmi il perchè di questo errore?
grazie
_______________________________________________
Rails mailing list
Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
http://lists.rubyonrails.org/mailman/listinfo/rails