0
我有以下的Rails型號:爲模型Rspec的隔離測試是建立另一個
class Factory < ApplicationRecord
has_many :widget
def build_widget!
widget = widgets.build
widget.verify! # does stuff, could raise exception depending outcome of third party api calls, etc.
widget.save!
end
end
我有以下Rspec的測試設置:
RSpec.describe Factory, type: :model do
describe '#build_widget!' do
let(:factory) { create(:factory) }
it 'creates a new widget' do
expect(factory.widgets.count).to eq 0
factory.build_new_widget!
expect(factory.widgets.count).to eq 1
end
end
與這一點,我的幾個問題努力:
1)我如何隔離工廠測試,所以我不依賴於widget.verify的結果! (我已經在Widget模型的單獨規範中介紹過)。因爲這個方法在方法內部是硬編碼的,所以我在如何設置合適的模擬或雙精度上掙扎。
2)測試factory.widgets.count是否是最好的方法?這看起來有點駭人聽聞,但我不確定如何正確設定期望值。
好,謝謝!這非常合理。 – richleenyc