ruby-on-rails - 使用 Ruby on Rails 了解 Test::Unit 中的 assert_equal

标签 ruby-on-rails ruby unit-testing testing assert

我有以下代码:

test "unique title" do
    product = Product.new(title:       products(:ruby).title,
                          description: 'yyy',
                          price:       1,
                          image_url:   "fred.gif")

    assert !product.save
    puts product.errors[:title].join('; ')
    assert_equal "has already been taken", product.errors[:title].join('; ')
  end

测试通过。但我不明白为什么 assert_equal 不会触发错误。

因为“已被采用”不等于:ProductTest#test_unique_titlehas already been taken

这是 puts 语句的输出。

为什么这个测试通过了?

最佳答案

我认为您感到困惑,因为不知何故在您的输出中没有换行。 ProductTest#test_unique_title 描述了你正在运行的测试方法并且已经被采用是你的结果所以测试应该通过

关于ruby-on-rails - 使用 Ruby on Rails 了解 Test::Unit 中的 assert_equal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16952241/

相关文章:

ruby-on-rails - 单表继承和 ActiveRecord 关联

java - 动态查找字符串以寻址串行端口

ruby-on-rails - ActiveRecord::关联类型不匹配。有很多关系

c# - 创建一个 IEqualityComparer<IEnumerable<T>>

ruby-on-rails - Node.js 和 Rails 应用程序托管,具有共享 MongoDB 数据库和定价

ruby-on-rails - 需要用户身份验证的页面的元标记是否有帮助?

unit-testing - 使用Visual Studio Online构建服务器发现xUnit.net测试的异常

python - 如何对 python unittest 发现测试进行排序?

ruby-on-rails - Gem, rails 的自定义保存方法

Ruby 等价于 C++ Const?