gpt4 book ai didi

ruby-on-rails - Rails 4 - 所有测试均失败(甚至断言为真)

转载 作者:行者123 更新时间:2023-11-28 20:23:07 26 4
gpt4 key购买 nike

Rails 新手,刚开始学习测试。我们遇到的问题可能有一个让我们难过的简单答案。

我们已经编写了一些代码并使其在开发中运行(只是静态代码和带有 Devise 的登录系统)。我们文件中唯一的测试用例是由 rails 生成的,例如:

  test "should get about" do
get :about
assert_response :success
end

然而,当我们运行 bundle exec rake test 时,令我们惊讶的是,我们未能通过每一个测试

10 runs, 0 assertions, 0 failures, 10 errors, 0 skips

每个测试都有相同的错误:

ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR:  null value in column "email" violates not-null constraint
DETAIL: Failing row contains (980190962, null, 2015-10-27 09:40:30, 2015-10-27 09:40:30).
: INSERT INTO "leads" ("created_at", "updated_at", "id") VALUES ('2015-10-27 09:40:30', '2015-10-27 09:40:30', 980190962)

通过阅读该错误,我们的 leads 表中似乎有一些记录没有电子邮件。电子邮件是迁移后创建的字段。但是,通过 psqlAdmin 查看,每一行都有一封电子邮件。此外,如果我们在 chrome 中加载页面后查看控制台,则没有错误。

即使是最基本的测试也会因同样的错误而失败:

test "the truth" do
assert true
end

我唯一的猜测是有一些默认的播种正在进行,它试图在没有电子邮件的情况下将字段插入潜在客户。然而,seeds.rb 是完全空白的。

这是我在终端中调用的开始:

Macintosh-2:triplanding Calvino$ bundle exec rake test
Run options: --seed 15348

# Running:

EEEEEEEEEE

Finished in 0.108843s, 91.8753 runs/s, 0.0000 assertions/s.
  1. 为什么这些测试失败了?
  2. 为什么 leads 甚至参与了 assert true 之类的测试。

提前致谢!

更新

这是我的 fixture/leads.yml 文件。我们没有对其进行编辑,这是生成的内容:

one: {}
# column: value
#
two: {}
# column: value

最佳答案

很可能是因为您的 fixtures 由于以下原因无法运行:

ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR:  null value in column "email" violates not-null constraint

检查您的潜在客户固定装置是否不包含空电子邮件,它应该可以工作!

每当您在 Rails 上运行测试时,它都会设置测试数据库(这就是 assert true 失败的原因)

关于ruby-on-rails - Rails 4 - 所有测试均失败(甚至断言为真),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33364748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com