Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
rspec,2路是一样的吗?_Rspec_Rspec2_Rspec Rails - Fatal编程技术网

rspec,2路是一样的吗?

rspec,2路是一样的吗?,rspec,rspec2,rspec-rails,Rspec,Rspec2,Rspec Rails,ONE:=>运行测试时为false @sponge = Factory(:user) let(:event_type) { EventType.where( name: 'visit_site').first subject{ Event.new user: @sponge, event_type: event_type, points_earned: event_type.points_value, description: {}} context 'call #update_user_

ONE:=>运行测试时为false

@sponge = Factory(:user)
let(:event_type) { EventType.where( name: 'visit_site').first 
subject{ Event.new user: @sponge, event_type: event_type, points_earned: event_type.points_value, description: {}}

context 'call #update_user_points when create a event' do
   it{should_receive(:update_user_points)}
end
两个:=>运行测试时为true

@sponge = Factory(:user)
let(:event_type) { EventType.where( name: 'visit_site').first 
subject{ Event.new user: @sponge, event_type: event_type, points_earned: event_type.points_value, description: {}}

context 'call #update_user_points when create a event' do
   it{should_receive(:update_user_points)}
end

请给我一些建议:D

您的第二个示例与第一个示例不同:它们都为
事件#更新用户点
设置了消息期望,但第二次调用
保存
;第一个没有

我不认为您可以像第一个示例中那样,使用带有隐式主题的
should\u receive
。rspec似乎没有抱怨,但我认为它并没有达到你想要的效果。为此,它做了以下工作:

  • 运行主题块以实例化事件
  • 设置一条消息预期,说明主题(新创建的事件)应通过
    update\u user\u points
    方法接收更新
  • 然后它停止了,因为这个例子没有其他的东西

  • 它失败是因为从未收到消息。

    我理解rspec中的一点,例如为什么我们必须在“event.save”之前加上“should_receive”。我认为它在创建一个事件后运行update\u user\u points,它应该放在那之后吗?我想第一条路必须走得很好?你能教我一些关于rspec的好东西吗。谢谢:D