Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby rspec中调用模块?_Ruby_Selenium_Rspec - Fatal编程技术网

如何在Ruby rspec中调用模块?

如何在Ruby rspec中调用模块?,ruby,selenium,rspec,Ruby,Selenium,Rspec,lib/rspec/core/my_methods.rb module MyLovelyModule class My_methods def my_lovely_method save_world config.to_prepare do Dir.glob(Rails.root + "../simpleRspec/dummy_classes.rb").each do |c| require_dependency(c) end

lib/rspec/core/my_methods.rb

module MyLovelyModule

class My_methods

  def my_lovely_method
    save_world

    config.to_prepare do
      Dir.glob(Rails.root + "../simpleRspec/dummy_classes.rb").each do |c|
        require_dependency(c)
      end
  end
end
end
  end
lib/simpleRspec/dummy_classes.rb

describe MyLovelyModule do

class DummyClasses

  before(:all) do
    @dummy = DummyClasses.new
    @dummy.extend MyLovelyModule
  end

  describe "MyLovelyModule" do
    it "saves the world" do
      expect {
        @dummy.my_lovely_method
      }.to raise_error MeltDownException
    end
  end
end
end
我犯了这样一个错误:-

C:/Users/afzala/RubymineProjects/simpleRspec/lib/simpleRspec/dummy_classes.rb:2:in`':未初始化常量MyLovelyModule(NameError)
from-e:1:in“load”
from-e:1:in`'
进程已完成,退出代码为1

有人能帮我解决这个问题吗?你需要先加载你的模块。在定义测试之前,还需要关闭类:

require 'lib/rspec/core/my_methods.rb'

describe MyLovelyModule do

  class DummyClasses
  end

  before(:all) do
    @dummy = DummyClasses.new
    @dummy.extend MyLovelyModule
  end

  describe "MyLovelyModule" do
    it "saves the world" do
      expect {
        @dummy.my_lovely_method
      }.to raise_error MeltDownException
    end
  end
end

此外,您将无法在测试中访问
@dummy
。您需要在(:each)之前使用
来代替(:all)

您有spec\u helper.rb文件吗?你也能给我看看吗?是rails应用程序吗?我收到这个错误加载错误。。。。C:/Users/afzala/RubymineProjects/simpleRspec/lib/simpleRspec/dummy_classes.rb:1:in
require”:无法加载这样的文件--lib/rspec/core/my_methods.rb(LoadError)from C:/Users/afzala/RubymineProjects/simpleRspec/lib/simpleRspec/dummy_classes.rb:1:in
“from-e:1:in
加载”from-e:1:in
“过程预期结束,退出代码为1”。是rails应用程序吗?加载路径中有什么?为什么要将应用程序模块存储在名为“rspec”的文件夹中?不,这是一个gem应用程序,您没有
spec\u helper.rb
文件吗?是的,在我的spec\u helper.rb中,它甚至在rspec.configure do | config | config.before(:each){print('before method')}config.before(:each)do end config.after(:each)do end config.before(:all)do end config.before)之前在(:all)do config.after(:suite)do config.before(:suite)do end config.after(:suite)do end end