加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 最小的错误消息测试

发布时间:2020-12-17 02:21:01 所属栏目:百科 来源:网络整理
导读:我用mini_test进行测试.我有一个像下面的代码部分. raise Type_Error,'First Name must not be empty' if @person.first_name == nil 我该如何编写此代码的测试? 谢谢… 解决方法 我想你想要 assert_raises,它断言传递给它的块/表达式会在运行时引发异常.
我用mini_test进行测试.我有一个像下面的代码部分.

raise Type_Error,'First Name must not be empty' if  @person.first_name == nil

我该如何编写此代码的测试?
谢谢…

解决方法

我想你想要 assert_raises,它断言传递给它的块/表达式会在运行时引发异常.

例如,我的一个项目有以下最小的:

test 'attempting to create a CreditCard that fails to save to the payment processorshould prevent the record from being saved' do
    assert_equal false,@cc.errors.any?

    failure = "simulated payment processor failure"
    failure.stubs(:success?).returns(false)
    failure.stubs(:credit_card).returns(nil)

    PaymentProcessor::CreditCard.stubs(:create).returns(failure)

    assert_raises(ActiveRecord::RecordNotSaved) { create(:credit_card) }
  end

在我的例子中,这样做是:

>从支付处理器API创建模拟失败消息
>在支付处理器上创建信用卡以返回模拟故障
>尝试创建信用卡,模拟支付处理器已返回失败状态,并声明我的内部save / create方法在这些条件下引发错误

我应该说这个测试代码包括除了minitest之外的东西,比如FactoryGirl,以及(我认为)shoulda和mocha匹配器.换句话说,上面显示的并不是严格最小的代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读