ruby-on-rails - 我在测试我的 Rails 应用程序模型时遇到错误
问题描述
嗨,我目前在我的模型中进行测试,我将 .bak 放在了fixtures 中的所有 yml 文件中。
我有这个验证
class Category < ApplicationRecord
belongs_to :user
has_many :tasks
validates :categoryname,presence:true,length:{minimum:5}
validates :categorybody,presence:true,length:{minimum:5}
validates :user_id,presence:true
end
这是我的测试
require "test_helper"
class CategoryTest < ActiveSupport::TestCase
test "should save if category name is more than 4 letters" do
category = Category.new(categoryname: "testing")
assert category.save
end
它符合验证但我收到错误
Failure:
CategoryTest#test_should_save_if_category_name_is_more_than_4_letters
[/home/azarlorea/journalz/journalv/test/models/category_test.rb:27]:
Expected false to be truthy.
我用相同的代码创建了一个新的 Rails 应用程序,除了我删除了关联和用户 ID 验证,它在那里工作正常。
谢谢
解决方案
显然,category
由于存在验证错误,无法保存。
即使您正在检查,categoryname
您也需要确保分配了其他必填字段。
您可以尝试像这样测试它
test "should save only if category name is more than 4 letters" do
user = User.create(mandatory params here...)
category = Category.new(categoryname: "test", categorybody: "testing", user: user)
assert_not category.valid?
category.categoryname = "validname"
assert category.valid?
end
推荐阅读
- javascript - 套接字正在创建单个实例。如何从多个客户端创建此应用程序?
- android - 如何识别特定文本并将该文本替换为android中图像内的其他文本?
- c# - 使用c#将日期时间插入oracle数据库
- android - 无法使用 cmd 构建 android 项目
- python - 正则表达式不返回结果
- javascript - 星级CSS问题
- assembly - MSVC 2019 masm _printf 函数在哪里?
- javascript - 如何通过 JavaScript 重置表单
- dialogflow-es - 在对话流中使用基本卡片调用意图而不使用 webhook
- artificial-intelligence - 为什么我的 VGG-19 实施效果不佳?