Rspec:如何在一次测试中拥有多个控制器?如何在测试中更改控制器?

时间:2015-04-08 01:49:58

标签: ruby-on-rails ruby rspec

当我尝试编写一个完整的测试时,我遇到了一个有趣的问题。

首先,我要承认测试应该是离散的和具体的事情。这个事实我知道......但是:)

但是,就像游戏和学习线一样,我认为在打开门之前完全通过测试是一个好主意。为此,我想编写一个大规模的集成测试,它会击中一堆控制器。它会超级慢,所以我已经将它隔离开来,只有在被要求时才能运行。但现在我被困了

我似乎无法弄清楚如何"击中"控制器。

我已经尝试将我的测试类型设置为“集成”'和规定。我按照此问题回答post to a different controller in an rspec test中列出的步骤进行操作 而且我在控制器中输入了1/0,它从未命中过。

1 个答案:

答案 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

我有很多帖子和帖子,但这段代码足以让任何人开始。