1

更新2:require {path_to_spec_helper}はセットアップの未定義の問題を解決しますが、すべての静的変数が突然未定義になり、FactoryGirlで作成されたすべてのオブジェクトが検証に合格しません(検査でオブジェクトが検証に合格する必要があることが示されている場合でも)。そして、FactoryGirlをsave_with_validation(false)に変更すると、テストでオブジェクトがnilになり、すべてが壊れます。

更新:私はこれを私のコードに投げ込みました:

  context "some context" do
    ap self.respond_to?(:setup)
    setup do
        raise "stop"

そして、respond_to行はtrueと出力されましたが、その後、以下のmethod_missingエラーをスローしました。だから、私はそれが文脈の中で定義されていないだけだと思いますか?以前はそうだったわけではありません。

元の投稿:

どういうわけか、私にはわかりませんが、私のテストではcontext//が定義されていないようです。すべての設定を'に変更すると、またはで問題が発生します。すべてのrspec/shouldaマッチャーをold-skoolスタイルの---に変更すると、テストは実行されますが、実際には実行されません。(コンソールの進行状況は、実行中のテストがない(ドットがない)ことを示しています)。shouldsetupbefore(:each)shouldcontextdescribebefore(:each)it{}

では、テスト環境が適切に設定されていることを確認するにはどうすればよいでしょうか。

これが私の設定
gemファイルです:

# can't be in test group because it's required in the rake file
gem "single_test"# because running all the tests all the time takes too long

group :test do
    # helper gems
    gem "rspec-rails", "1.3.4"
    gem "rspec", "1.3.2"
    gem "shoulda"

    gem "database_cleaner"
    gem "crack" #for XML / JSON conversion

    gem "mocha" #required for .requires and .stubs
    gem "factory_girl", :require => false

    # view and functional
    gem "capybara", "1.1.1"
    gem "cucumber", "1.1.0"
    gem "cucumber-rails", "0.3.2"
    gem "culerity"

    gem "launchy"
    gem "hpricot"
    gem "gherkin"
    gem "rack"
    gem "webrat"

    # tools
    gem "json"
    gem "curb"

end

テストヘプラーに必要なもの:

require File.expand_path(File.dirname(__FILE__) + "/../config/environment")

require "bundler/setup"
Bundler.require(:test)

require 'test_help'
require 'spec'
require 'spec/expectations'
require 'factory_girl'

バイナリ情報
ruby 1.8.7
rvm 1.7.2
gem 1.8.21
bundle 1.1.4
rake 0.9.2.2
rails 2.3.14

そして私のエラー

`method_missing': undefined method `setup' for Spec::Example::ExampleGroup::Subclass_1:Class (NoMethodError)

スタックトレース:

from test/unit/my_test.rb:257
from /Users/me/.rvm/gems/ruby-1.8.7-p352/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:188:in `module_eval'
from /Users/me/.rvm/gems/ruby-1.8.7-p352/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:188:in `subclass'
from /Users/me/.rvm/gems/ruby-1.8.7-p352/gems/rspec-1.3.2/lib/spec/example/example_group_methods.rb:55:in `describe'
from /Users/me/.rvm/gems/ruby-1.8.7-p352/gems/rspec-1.3.2/lib/spec/example/example_group_factory.rb:31:in `create_example_group'

スタックの最後のコードビットの257行目あたりのコード:

  context "some context" do
    setup do
    ...
4

1 に答える 1