Rspec重构单一期望

时间:2019-02-07 11:19:29

标签: rspec

我有这个工作测试,期望值为2。 我想使其更清洁,并且每个测试有1个期望值。 问题在于,在运行程序之前需要先完成第一个期望,然后在运行第二个期望。

context 'when user has invited over 3 users' do
    let (:user) { create(:user_with_wallet) }
    it 'sends slack and increases risk score' do
      expect(Slack.client).to receive(:ping).once
      4.times do
        create(:user_invitation, email: Faker::Internet.email, sender: user)
      end
      expect(user.risk_matrix.score).to eq(RiskMatrix::INVITED_TOO_MANY_USERS  )
    end

  end

如果我在4.times块中设置了before位,那么Slack的期望将失败 如果我将其设置在after块中,那么将是risk_matrix失败。

最干净的方法是什么?

非常感谢

0 个答案:

没有答案