当我尝试编写一个完整的测试时,我遇到了一个有趣的问题。
首先,我要承认测试应该是离散的和具体的事情。这个事实我知道......但是:)
但是,就像游戏和学习线一样,我认为在打开门之前完全通过测试是一个好主意。为此,我想编写一个大规模的集成测试,它会击中一堆控制器。它会超级慢,所以我已经将它隔离开来,只有在被要求时才能运行。但现在我被困了
我似乎无法弄清楚如何"击中"控制器。
我已经尝试将我的测试类型设置为“集成”'和规定。我按照此问题回答post to a different controller in an rspec test中列出的步骤进行操作 而且我在控制器中输入了1/0,它从未命中过。
答案 0 :(得分:0)
好吧..我想出了这个,感谢其他答案..我只是简单地写出来,为了我自己的笔记......以及未来的猎人。
describe 'Payments Integration', :type => :request do
let(:attributes) { p 'blabla' }
it 'should create user and billing details' do
expect{
post '/api/account', account: attributes
}.to change(User,:count).by(1)
user = User.find(json['account']['id'])
auth = user.authentication_token
expect{
post '/api/billing_details', auth_token: auth, credit_card: valid_card
}.to change(BillingDetail,:count).by(1)
end
end
我有很多帖子和帖子,但这段代码足以让任何人开始。