Ruby on rails 模型无法接收来自方法的调用,即使该方法正在控制器中被调用
我正在试着写一个测试,看看我的医院模型是否正在接受一个定制的方法look_for_hospitals 以下是测试:Ruby on rails 模型无法接收来自方法的调用,即使该方法正在控制器中被调用,ruby-on-rails,ruby,rspec,tdd,Ruby On Rails,Ruby,Rspec,Tdd,我正在试着写一个测试,看看我的医院模型是否正在接受一个定制的方法look_for_hospitals 以下是测试: Rspec.description医院控制器,类型::控制器do 描述“#搜索”做什么 它“应该调用model方法来执行搜索”do #模型应为医院实施方法查找 期望(医院)。接收(:查找医院)。带有('关键字') #搜索页面中的表单必须命名为“关键字” 获取:搜索,参数:{:关键字=>'关键字'} 期望(分配(:医院)) 结束 结束 这是我的模型: class Hospital正
Rspec.description医院控制器,类型::控制器do
描述“#搜索”做什么
它“应该调用model方法来执行搜索”do
#模型应为医院实施方法查找
期望(医院)。接收(:查找医院)。带有('关键字')
#搜索页面中的表单必须命名为“关键字”
获取:搜索,参数:{:关键字=>'关键字'}
期望(分配(:医院))
结束
结束
这是我的模型:
class Hospital正如Tom Lord指出的,问题出在控制器开始时的操作前的行中。我只需要将它们存根,问题就消失了。正如Tom Lord所指出的,问题出现在控制器开头的操作之前的行中。我只需要将它们存根,问题就解决了。您试过调试它吗?你发现了什么?这个问题可能是由各种各样的事情引起的,但我很确定这是你在上面的帖子中没有展示的东西。(例如,在控制器上的_action
之前可能有一个,这意味着该行代码永远不会执行?)正是这样。有人将Desive添加到项目中,我完全错过了行动前的。非常感谢你!如果你不想结束这个问题,请留下你自己的答案,过几天你就可以接受了。因为你已经知道答案,所以这将有助于解决问题,而回答者不必通读它,只会意识到问题已经解决了。你明白了。我是新来的,如果我还不知道协议,很抱歉。你试过调试吗?你发现了什么?这个问题可能是由各种各样的事情引起的,但我很确定这是你在上面的帖子中没有展示的东西。(例如,在控制器上的_action
之前可能有一个,这意味着该行代码永远不会执行?)正是这样。有人将Desive添加到项目中,我完全错过了行动前的。非常感谢你!如果你不想结束这个问题,请留下你自己的答案,过几天你就可以接受了。因为你已经知道答案,所以这将有助于解决问题,而回答者不必通读它,只会意识到问题已经解决了。你明白了。我是新来的,如果我还不知道协议,很抱歉。
1) HospitalsController#search should call the model method to do the search
Failure/Error: expect(Hospital).to receive(:look_for_hospitals).with('keyword')
(Hospital(id: integer, cnes: string, number: integer, address: text, latitude: string, longitude: string, name: string, phones: text, nature: string, specialties: text, rpa: string, microregion: string, created_at: datetime, updated_at: datetime) (class)).look_for_hospitals("keyword")
expected: 1 time with arguments: ("keyword")
received: 0 times