通过回答关于属性可访问性测试的另一个StackOverflow问题(并认为它们非常棒)来了解shoulda-matchers后,我决定尝试重构我在The Rails Tutorial中所做的模型测试,试图使它们更加简洁和彻底.我这样做是由于从文档模块的一些灵感和,以及这个StackOverflow的答案就在模型结构早该测试.但是,还有一些我不确定的事情,我想知道如何使这些测试更好. Shoulda::Matchers::ActiveRecordShoulda::Matchers::ActiveModel
我将使用Rails教程中的用户规范作为我的示例,因为它是最详细的,并涵盖了许多可以改进的领域.以下代码示例已从原始user_spec.rb更改,并将代码替换为describe "micropost associations"行.针对user.rb模型的规范测试及其工厂在factories.rb中定义.
规格/型号/ user_spec.rb
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# name :string(255)
# email :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# password_digest :string(255)
# remember_token :string(255)
# admin :boolean default(FALSE)
#
# Indexes
#
# index_users_on_email (email) UNIQUE
# index_users_on_remember_token (remember_token) …Run Code Online (Sandbox Code Playgroud) 我应该为两个模型之间的关联编写测试吗?
我刚刚在我的第一个Rails项目中发现了这个代码,这似乎不正确,因为没有关联导致错误而不是失败.那么我将如何以及在何处正确测试它们?
require 'test_helper'
class VocabTest < ActiveSupport::TestCase
test "Must have 'belongs_to user' association" do
assert @vocab.user
end
end
Run Code Online (Sandbox Code Playgroud)