我正在使用工厂女孩来创建一个inventory_count = 3的模型。在我的测试中,我想测试一个case_count = 0的情况。所以这就是我做的:
before(:each) do
@user = FactoryGirl.create(:user)
@piece = FactoryGirl.create(:piece)
@lineup = @user.lineup
end
it 'should have status \'Waiting List\' if the piece doesn\'t have available inventory' do
@piece.available_count = 0
@lineup.pieces << @piece
piece_lineup = @lineup.piece_lineups.find_by_piece_id(@piece.id)
piece_lineup.set_status
piece_lineup.status.should == 'Waiting List'
end
我在@ piece.available_count = 0之后放了一个调试器,它是= 0,但当它下到下一行时,它会切换回旧值。我尝试将.save添加到@piece但它仍然无法正常工作。难道我做错了什么?我应该在工厂女孩中创建新的价值模型,而不是试图在飞行中进行吗?
答案 0 :(得分:0)
更改不是进入数据库。尝试
@piece.update_attributes!(available_count: 0)
编辑:要跳过重置available_count的回调,请使用update_column(:available_count, 0)
答案 1 :(得分:0)
我相信写作会更好:
@piece = FactoryGirl.create(:piece, :available_count => 0)
创建一个piece
模型,其计数已经为0。
此外,您的问题是开始提及inventory_count
。你的意思是available_count
吗?只是想确保你没有输入错字。