Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rspec有问题,期待改变_Ruby On Rails_Rspec - Fatal编程技术网

Ruby on rails rspec有问题,期待改变

Ruby on rails rspec有问题,期待改变,ruby-on-rails,rspec,Ruby On Rails,Rspec,我正在使用rspec测试一个Ruby终端应用程序。我似乎不知道如何测试散列中的更改 一般来说,我仍在努力对测试进行思考,所以很可能我对测试的很多方面都有误解 我试图测试,当一个费用被添加到帐户实例中,但费用超过了帐户限制时。账户上的余额不变 class Account def apply_charge(card_holder_name, charge) charge = int_dollar_input(charge) account = find_ac

我正在使用rspec测试一个Ruby终端应用程序。我似乎不知道如何测试散列中的更改

一般来说,我仍在努力对测试进行思考,所以很可能我对测试的很多方面都有误解

我试图测试,当一个费用被添加到帐户实例中,但费用超过了帐户限制时。账户上的余额不变

class Account
  def apply_charge(card_holder_name, charge)
    charge       = int_dollar_input(charge)
    account      = find_account_by_card_holder(card_holder_name) 
    temp_balance = account[:balance] + charge

    account[:balance] = account[:balance] + charge if temp_balance < account[:limit]
  end
end

describe "Adding a charge to an account" do
  context "GIVEN a charge amount that exceeds the account limit" do

    let(:account)     { subject.add_account("William", 5454545454545454,'$1000') }

    it "will do nothing" do
      expect(subject.apply_charge('William', '$1200')).
        to_not change {account[:balance]} 
    end
  end
end
1) 向帐户添加费用的帐户,该帐户的费用金额为 超过帐户限制将不起任何作用 失败/错误: 预期(受试者申请费用('William','1200'))。 不更改{帐户[:余额]}

   expected `account[:balance]` not to have changed, but was not given a block
 # ./spec/account_spec.rb:46:in `block (4 levels) in <top (required)>'
应为'account[:balance]`未更改,但未被给予阻止
#./spec/account_spec.rb:46:in'block(4层)in'

Expect需要在一个块中:
Expect{subject.apply_charge('William','1200')}.to….

Expect需要在一个块中:
Expect{subject.apply_charge('William','1200')}.to….

   expected `account[:balance]` not to have changed, but was not given a block
 # ./spec/account_spec.rb:46:in `block (4 levels) in <top (required)>'