- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我目前正在尝试为我的用户通过一个简单的单元测试
require 'test_helper'
class UsersTest < ActiveSupport::TestCase
test "user is created" do
user = User.create!(:name => "Edmund")
assert_equal user.id, User.first.id
end
end
但是,我运行 rake test:units
并得到一个错误:
1) Error:
test_user_is_created(UsersTest):
ActiveRecord::StatementInvalid: PG::Error: ERROR: null value in column "created_at" violates not-null constraint
: INSERT INTO "messages" ("content", "read") VALUES ('MyText', 1)
(这是完整的日志)
Edmunds-MacBook-Pro:langexchange edmundmai$ rake test:units
NOTICE: CREATE TABLE will create implicit sequence "languages_id_seq" for serial column "languages.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "languages_pkey" for table "languages"
NOTICE: CREATE TABLE will create implicit sequence "locations_id_seq" for serial column "locations.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "locations_pkey" for table "locations"
NOTICE: CREATE TABLE will create implicit sequence "messages_id_seq" for serial column "messages.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "messages_pkey" for table "messages"
NOTICE: CREATE TABLE will create implicit sequence "users_id_seq" for serial column "users.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "users_pkey" for table "users"
Run options:
# Running tests:
E
Finished tests in 0.666783s, 1.4997 tests/s, 0.0000 assertions/s.
1) Error:
test_user_is_created(UsersTest):
ActiveRecord::StatementInvalid: PG::Error: ERROR: null value in column "created_at" violates not-null constraint
: INSERT INTO "messages" ("content", "read") VALUES ('MyText', 1)
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:654:in `async_exec'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:654:in `block in execute'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activesupport-3.2.8/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:653:in `execute'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/database_statements.rb:277:in `insert_fixture'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:502:in `block (5 levels) in create_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:501:in `each'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:501:in `block (4 levels) in create_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:500:in `each'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:500:in `block (3 levels) in create_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:492:in `each'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:492:in `block (2 levels) in create_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:491:in `block in create_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:527:in `disable_referential_integrity'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:476:in `create_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:895:in `load_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/fixtures.rb:849:in `setup_fixtures'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:407:in `_run__1860443591909891061__setup__836517370287596446__callbacks'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in `__run_callback'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:385:in `_run_setup_callbacks'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activesupport-3.2.8/lib/active_support/testing/setup_and_teardown.rb:35:in `run'
1 tests, 0 assertions, 0 failures, 1 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -I"lib:test" -I"/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/rake-10.0.2/lib" "/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/rake-10.0.2/lib/rake/rake_test_loader.rb" "test/unit/**/*_test.rb" ]
Tasks: TOP => test:units
(See full trace by running task with --trace)
我的模型是:
class Users < ActiveRecord::Base
attr_accessible :age, :gender, :name
has_many :sent_messages, :class_name => "Messages", :foreign_key => 'sender_id'
has_many :received_messages, :class_name => "Messages", :foreign_key => 'receiver_id'
belongs_to :location
belongs_to :language
before_save { |user| if user.new_record? then create_remember_token end }
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
class Messages < ActiveRecord::Base
attr_accessible :content, :read
belongs_to :sender, :class_name => "User", :foreign_key => 'sender_id'
belongs_to :receiver, :class_name => "User", :foreign_key => 'receiver_id'
end
有人可以帮忙吗?我不明白为什么它在谈论 Messages
模型,而我只是在创建一个简单的 User
...
更新
测试/fixtures/messages.yml
one:
content: MyText
read: 1
two:
content: MyText
read: 1
最佳答案
堆栈跟踪中要查看的行是
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/database_statements.rb:277:in `insert_fixture'
在测试开始之前,它会读取包含您的测试将使用的样本数据的装置。很可能你的夹具没有正确的数据(尽管我承认我会认为 Rails 会神奇地管理 updated_at
和 created_at
属性)。
关于ruby-on-rails - Rails:单元测试:ActiveRecord::StatementInvalid: PG::Error: ERROR: "created_at"列中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13692973/
我得到了这个代码: def user_activity @array_activity = [] @testannounces = Announce.all @te
我有一个 Laravel 应用程序,我正在尝试将用户 checkin 和 checkout 保存到我的数据库中 我有一个模型 Checkins我把它记录为 created_at 和 updated
我在一个 laravel 网站工作,我只是想知道是否有办法为用户格式化 created_at 值,因为现在它类似于以下内容: 2017-09-20 13:41 但我更愿意将其格式化为易于阅读的格式,例
我正在尝试通过以下代码添加记录: Post.objects.update_or_create( user=user, defaults={ "title": external_
我编写查询以了解用户在一周内减少了多少卡路里,但出现此错误。 如何避免错误? def self.calories_burned(current_user) week = ((created_at
我们正在将我们的项目从 v1 更新到 v2。当我们尝试通过仅提供更改的字段作为结构来更新行时,它会尝试设置 created_at 列并返回错误。这在 v1 中起作用。根据文档,在更新操作期间,具有默认
Laravel 在每个表上都有两个时间戳(created_at 和 updated_at)。我认为它会在插入新行时插入 created_at 并在更新时更新 updated_at。然而,当我更新我的模
在 created_at 列的日期范围内确定外键的唯一性 validates :test_id, :uniqueness => { :scope => Date(:created_at)} 上面的代码
我在 Rails 中运行以下命令: coe = trackers.where(:trackable_type => "Mailing").count(:group => 'DATE(created_a
这是我的customer_schema.js 文件: up () {
我正在尝试创建一个查询,我想将我的行转换为行 panel_name GROUP BY 的列,并按个人日期的最后一个 created_at 排列。我的数据以列格式出现,但未显示特定日期。我尝试了多个查询
如何查询id_konsul = 4的数据,如果相同如何从created_at获取最新的staflow ? 例子 id id_konsul staflow created_at 1 4 1
我想通过 created_at 属性选择一系列模型记录,我试过这个查询 Client.where('created_at BETWEEN ? AND ?', 30.days.from_now, Dat
假设我有以下内容: class Movie < ActiveRecord::Base has_many :reviews end 我想列出用户在评论之前没有先评论的新创建的电影。 所以这就像合并这
我想列出几条记录,我只想显示 created_at 的 y-m-d,而不是小时数。 我在查询中这样做: $letter = Letter::select('letters.id', DB::raw('
我刚刚开始在我的应用中学习和使用 Core Data。每当我获取已保存对象的列表时,我想确保我还删除了 Core Data 中超过一周的对象(显然,在我测试时会更少). 我如何完成这项工作?这些模型对
已结束。此问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
已结束。此问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有日历模型。我不会插入大量数据。 $data = [ [ 'weekday' => 1, 'status' => 'active' ] .......
我有一个婴儿日志列表,我尝试自动计算之前的时间差,减去喂食间隔。 feedingInterval = 3h 例如 如果我在下午 5 点喂我的宝宝,如果我在晚上 7:50 再次喂他。他早到了 10 分钟
我是一名优秀的程序员,十分优秀!