【发布时间】:2016-01-15 00:57:58
【问题描述】:
我的服务可以完美地手动测试,但我需要编写服务测试。所以我在 rspec 中创建服务测试
require 'rails_helper'
RSpec.describe ReadService do
describe '#read' do
context 'with 4 count' do
let!(:object1) { create(:obj) }
let!(:object2) { create(:obj) }
let!(:object3) { create(:obj) }
let!(:object4) { create(:obj) }
it 'return 2 oldest obj' do
expect(ReadService::read(2)).to eq [report4,report3]
end
end
但是ReadService::read(2)在测试返回[]
当我手动输入时
ReadService::read(2)
它正确返回包含两个最旧 obj 的数组。我错了什么?我在测试中调用此服务不正确?
ReadService 实现
class ReadService
def self.read(count)
objects = Object.get_oldest(count)
objects.to_a
end
end
【问题讨论】:
-
ReadService.read(2)?根据您的测试, ReadService 不是一个模块。只是一堂课。而且您正在传递一个固定编号。也许发布你对ReadService的实现?
标签: ruby-on-rails ruby ruby-on-rails-4 rspec rspec-rails