Forum: Ruby on Rails unit testing methods interfering with each other

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
nmkolev (Guest)
on 2005-12-07 15:56
(Received via mailing list)
Hi all,

I am following the Agile Rails book and have a problem with unit
testing. Here is my products test file:

require File.dirname(__FILE__) + '/../test_helper'

class ProductTest < Test::Unit::TestCase

   fixtures :products

   def setup
     @product = Product.find 1

   def test_load_in_db
     assert_kind_of Product, @product
     assert_equal 29.95, @product.price

   def test_destroy
     assert_raise(ActiveRecord::RecordNotFound) { Product.find }


According to the book this should work, as different tests are not
dependent on each other, e.g. the destroy test should be independent
of the load_in_db test. I do howeveg get this after running the test:

:!ruby test/unit/product_test.rb
Loaded suite test/unit/product_test
Finished in 0.259161 seconds.

   1) Error:
ActiveRecord::RecordNotFound: Couldn't find Product with ID=1
active_record/base.rb:428:in `find'
     test/unit/product_test.rb:8:in `setup_without_fixtures'
active_record/fixtures.rb:522:in `setup'
active_record/fixtures.rb:520:in `setup'

2 tests, 1 assertions, 0 failures, 1 errors

If I remove the destroy test everything works as expected?

Any ideas as to why this is happening?

Many thanks in advance,
nmkolev (Guest)
on 2005-12-07 16:37
(Received via mailing list)
OK, found it. Has to do with the fact that Rails 0.14 switched to
transactional fixtures which my MySQL table type did not support.
More details here:

-- Nicky
This topic is locked and can not be replied to.