をテストしGemfileShouldaスーパーミスマッチがshouldaを使用した単純なユニットテストを記述しようと
の3テスト/ユニット/ user_test.rb
class UserTest < Test::Unit::TestCase
should validate_presence_of(:password, :on => :create)
should validate_presence_of(:handle, :email)
should validate_confirmation_of(:password)
should validate_length_of(:handle, :within => 6..15)
should validate_uniqueness_of(:handle)
should validate_format_of(:handle, :with => /\A\w+\z/i)
should validate_length_of(:email, :within => 6..100)
end
要部レール
group :test do
gem 'shoulda'
gem 'rspec-rails', '2.0.0.beta.12'
end
rake test --trace
を使用してこれを実行しようとすると、次のエラーが表示されます。
** Execute test:units
/Users/removed/removed/removed/app_name/test/unit/user_test.rb:5: superclass mismatch for class UserTest (TypeError)
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227:in `load_dependency'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `require'
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:9
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:9:in `each'
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:9
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:5:in `each'
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:5
私はこのエラーを理解していますが、別のUserTestクラスがどこに定義されているのか分かりません。何かご意見は?
マイク
'find。 | xargs grep -l UserTest' return?プロジェクトのルートから実行します。 –
うわー私はばかだよ - このユニットテストのコードを別のユニットテストにコピーしたので、UserTestを2回定義することになった。どうもありがとう! –
私はそれが比較的頻繁な間違いだと思う;) –