有两个类,UserDevice(< ActiveRecord :: Base)和NotificationAdapter。
在NotificationAdapter中,我使用AWS SDK,而UserDevice使用NotificationAdapter实例
联合点在下面,
protected def notificationAdapter
@notificationAdapter ||= NotificationAdapter.new(self)
end
在UserDevice测试中,我想制作临时的NotificationAdapter模型以替换原始的NotificationAdapter,并仅在测试中使用此模拟。
但我不知道该怎么办,因为这是我在测试中使用mock的第一个案例。
我认为它需要以下两个步骤,
在测试代码中创建临时NotificationAdapter类(NorificationAdapterMock)。
NotificationAdapterMock = MiniTest::Mock.new
mock.expect :setEndpoint, 'arn:testEndpoint'
mock.expect :subscribeToAnnouncement, true
将UserDevice的notificationAdapter方法更改为以下,
protected def notificationAdapter
@notificationAdapter ||= NotificationAdapterMock
end
但我不知道这是对还是错。我该怎么办?