0

Terminal と Sublime Text 3 を使用して非常に基本的なテストを実行しようとしています。単純なテストは実行されますが、失敗します ( undefined local variable or method 'x')

私のフォルダ階層は次のようになります。

ここに画像の説明を入力

spec_helper.rb は次のようになります。

require_relative '../test'

require 'yaml'

test_spec.rb は非常に基本的なものです

require 'spec_helper.rb'

describe "testing ruby play" do
  it "finds if x is equal to 5" do
    x.should eql 5
  end
end

私のtest.rbファイルにはx = 5それだけです。

変数は、クラスの一部である場合にのみ認識されますか? また、テストを実行するたびに新しいクラスを呼び出す必要がありますか?

4

1 に答える 1

1

ドキュメントから

require(name) → true または false

指定された名前を読み込み、成功した場合は true を返し、機能が既に読み込まれている場合は false を返します。

[をちょきちょきと切る]

ロードされたソース ファイル内の定数またはグローバルは、呼び出し元プログラムのグローバル名前空間で使用できます。ただし、ローカル変数は読み込み環境に反映されません。

必要なファイルで定数を使用できます。

X = 5
...
X.should eql 5 # => passes

しかし、おそらくここでまったく別のことをしたいと思うでしょう。おそらく、質問を拡張して、達成しようとしていることを説明できます。

于 2013-11-15T02:03:35.013 に答える