Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 on rails 如何在RSpec中不执行存根方法_Ruby On Rails_Rspec - Fatal编程技术网

Ruby on rails 如何在RSpec中不执行存根方法

Ruby on rails 如何在RSpec中不执行存根方法,ruby-on-rails,rspec,Ruby On Rails,Rspec,我正在测试控制器是否在其包含的模块中调用某个方法。我不希望该方法实际执行,只是为了验证它是否被调用。我现在得到的是: it 'calls create_show_and_tickets' do sign_in create :admin expect(subject).to receive(:create_show_and_tickets) post :create, show: valid_attributes end 在测试中,我没有输入正确的参数,因此当我尝试迭代一个不存在

我正在测试控制器是否在其包含的模块中调用某个方法。我不希望该方法实际执行,只是为了验证它是否被调用。我现在得到的是:

it 'calls create_show_and_tickets' do
  sign_in create :admin
  expect(subject).to receive(:create_show_and_tickets)

  post :create, show: valid_attributes
end
在测试中,我没有输入正确的参数,因此当我尝试迭代一个不存在的对象时,它会抛出一个错误。有没有办法确保
create\u show\u和\u tickets
不会执行

有没有办法确保不执行create_show_和_tickets

你打电话就是这么做的

expect(subject).to receive(:create_show_and_tickets)
。。。在邮局之前<代码>允许将具有相同的效果。在任何一种情况下,底层代码都会被模拟或存根替换,并且不会被调用

您可以在
create\u show\u和\u tickets
中放置调试语句以确认这一点

有没有办法确保不执行create_show_和_tickets

你打电话就是这么做的

expect(subject).to receive(:create_show_and_tickets)
。。。在邮局之前<代码>允许将具有相同的效果。在任何一种情况下,底层代码都会被模拟或存根替换,并且不会被调用


您可以将调试语句放入
create\u show\u和\u tickets
中以确认这一点。

代码看起来正确。如果它没有按预期工作,您能否显示您的设置
主题
?代码看起来是正确的。如果它没有按预期工作,您能告诉我您是如何设置
主题的吗?