我如何在我的rails minitest中使用mock?

时间:2015-09-10 06:07:37

标签: ruby-on-rails ruby mocking tdd minitest

有两个类,UserDevice(< ActiveRecord :: Base)和NotificationAdapter。
在NotificationAdapter中,我使用AWS SDK,而UserDevice使用NotificationAdapter实例 联合点在下面,

protected def notificationAdapter
  @notificationAdapter ||= NotificationAdapter.new(self)
end

在UserDevice测试中,我想制作临时的NotificationAdapter模型以替换原始的NotificationAdapter,并仅在测试中使用此模拟。
但我不知道该怎么办,因为这是我在测试中使用mock的第一个案例。

我认为它需要以下两个步骤,

  1. 在测试代码中创建临时NotificationAdapter类(NorificationAdapterMock)。

    NotificationAdapterMock = MiniTest::Mock.new mock.expect :setEndpoint, 'arn:testEndpoint' mock.expect :subscribeToAnnouncement, true

  2. 将UserDevice的notificationAdapter方法更改为以下,

    protected def notificationAdapter @notificationAdapter ||= NotificationAdapterMock end

  3. 但我不知道这是对还是错。我该怎么办?

0 个答案:

没有答案