`
jarry-li
  • 浏览: 43486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

今天重新在depot运行测试,用静态测试数据测试商品标题的唯一性,发现有个断言过不去:

 

assert_equal I18n.translate('activerecord.errors.messages.taken'), product.errors[:title]

错误信息:

 

 

  1) Failure:
test_product_is_not_valid_without_a_unique_title_-_i18n(ProductTest) [E:/works/rubyaptana/rails/test/unit/product_test.rb:67]:
<"has already been taken"> expected but was
<["has already been taken"]>.

5 tests, 24 assertions, 1 failures, 0 errors, 0 skips

 

 

后面发现在是因为没有照Agile Web Development with Rails Fourth Edition书上说的写。product.errors[:title]后还有join("; ")

看日志应该是一个字符串,和一个只有一个字符串元素的数组的区别。

经乱试,发现两种方式都可以通过:

1.

 

assert_equal I18n.translate('activerecord.errors.messages.taken'), product.errors[:title].join("")

 2.

assert_equal I18n.translate(['activerecord.errors.messages.taken']), product.errors[:title]

 

product_test.rb的测试方法是这样的:

  test "product is not valid without a unique title - i18n" do
    product = Product.new(title:       products(:ruby).title,
                          description: "yyy", 
                          price:       1, 
                          image_url:   "fred.gif")

    assert product.invalid?
    assert_equal I18n.translate(['activerecord.errors.messages.taken']), product.errors[:title]
    #assert_equal I18n.translate('activerecord.errors.messages.taken'), product.errors[:title].join("")
   end

 

 

1
0
分享到:
评论

相关推荐

    assert_param-转载.txt

    在 STM32 开发过程中,为了确保程序的稳定性和可靠性,经常需要使用到断言(assert)来验证函数参数的有效性。`assert_param` 是一个用于参数验证的宏,在 STM32 的开发库中被广泛使用。 #### 二、assert_param 的...

    STM32中assert_param的使用

    1. assert_param只能在调试阶段使用,在release模式下编译时,所有的assert_param检验都将消失,不会影响最终程序的运行效率。 2. assert_param可以帮助程序员快速发现错误,但它也牺牲了一定的效率。 3. 用户可以...

    关于assert_param的疑惑

    3. **简化代码维护**:在正式版本中,由于`assert_param`不会产生任何额外的运行时开销,因此不会影响最终程序的性能,同时保留了调试时的强大功能。 综上所述,`assert_param`作为一种强大的调试工具,在开发过程...

    minitest-ok:'ok {1 + 1} == 2',而不是'assert_equal 2,1 + 1'

    ok { 1 + 1 } == 2 # same as assert_equal 2, 1+1 ok { 1 + 1 } &gt; 1 # same as assert_operator 1+1, :&gt;, 1 ok { '123' } =~ / \d +/ # same as assert_match /\d+/, '123' ok { [ ] } . kind_of? ( Array ) # ...

    Python库 | pytest_cache_assert-1.1.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pytest_cache_assert-1.1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    pytest-assert-utils-0.2.1.tar.gz

    在 `pytest-assert-utils` 库中,你可能会找到如 `assert_equal`、`assert_not_equal` 等增强的断言方法,它们可能提供了更详细的错误消息,或者支持更复杂的比较操作,比如深度比较、忽略某些属性或元素等。...

    assert,assert_valid,verify,trace用法

    对于开始学vc的人,对于assert,assert_valid,verify,trace的宏感到很奇怪,总是觉得很难掌握似的,其实这些主要是没有理清楚他们各自宏之间深层次的意义。

    Python库 | test_junkie-0.2a5.tar.gz

    3. **断言(Assertions)**: 提供了丰富的断言方法,用于验证代码的行为是否符合预期,如`assert_equal`,`assert_true`等。 4. **依赖注入(Dependency Injection)**: 支持在测试中注入依赖,增强了测试的灵活性...

    Test_if_ne.rar_If...

    文件名中的"ne"可能代表“not equal”,暗示测试集中可能特别关注条件不满足的情况,即`if`语句的条件为假时的代码路径。 总结来说,这个压缩包提供的代码可能涉及以下关键知识点: 1. C语言的条件控制结构`if`和`...

    Python-affirm对断言的增强每当运行出错时当然希望能输出

    assert_that(value).is_equal_to(expected) # 自定义错误消息 assert_that(value).is_not_none("Value should not be None") # 更复杂的比较,例如检查列表内容 assert_that(list).contains_all(expected_items) `...

    assert_matches:提供宏`assert_matches`来测试模式匹配

    assert_matches 提供一个... 要包含在您的项目中,仅当编译测试时,才将以下内容添加到您的Cargo.toml中: [ dev-dependencies ]assert_matches = " 1.5 " 并将以下内容添加到您的板条箱根目录中: #[cfg(test)] #[m

    ZendFramework中文文档

    2.3.2. 使用声明(Assert)来编写条件性的 ACL 规则 3. Zend_Auth 3.1. 简介 3.1.1. 适配器 3.1.2. 结果 3.1.3. 身份的持久(Persistence) 3.1.3.1. 在PHP Session 中的缺省持久(Persistence) 3.1.3.2. 实现...

    contract:合约帮手

    合约帮手 该模块提供了一种在函数中...assert_equal 6 , Foo . new . foo ( 2 , 3 ) assert_equal false , Foo . new . foo ( 2 , "3" ) 当包含Contract模块时,方法contract和verify变得可用。 class Bar inclu

    xfs_dir2_leaf.rar_pop

    "Pop an assert"是编程术语,通常在调试模式下使用,表示当某个条件不满足时,程序会抛出一个断言错误并停止执行。在XFS的上下文中,如果在检查叶节点时发现任何不一致,如丢失的指针、越界的目录项或者损坏的数据,...

    如何使用assert_param

    使用assert_param高效调试STM32软件 assert_param是一种常见的软件技术,广泛应用于STM32固件库和提供的例程中。它的主要作用是检测传递给函数的参数是否是有效的参数,从而帮助程序员快速地排除那些明显的错误。在...

    Linux_c_lib.chm.rar_ Linux_c_lib.chm_c chm_linux C函数_linux c lib

    15. **错误检查和调试**:讲解如何使用assert和gdb进行程序调试。 这本手册对于初学者来说,是理解和掌握Linux系统编程的重要资源,而对于有经验的开发者,它也是一个快速查找函数用法和行为的便捷工具。由于其体积...

    人体姿态估计的强大算法

    parse_matlab\util\assert.m parse_matlab\util\printSkel.m parse_matlab\util\sampleWithR.m parse_matlab\util\isum.m parse_matlab\util\buildHistExps.m parse_matlab\util\local_sum_zero.m parse_...

    junit的jar包

    junit.framework.Assert.class junit.framework.AssertionFailedError.class junit.framework.ComparisonCompactor.class junit.framework.ComparisonFailure.class junit.framework.JUnit4TestAdapter.class junit....

Global site tag (gtag.js) - Google Analytics