我是单元测试场的新手; 我现在只使用了大约2个月的单元测试.当我在Ruby中进行单元测试时,我目前遵循TDD风格并使用Test :: Unit :: TestCase.我还阅读了有关RSpec以及它如何遵循BDD方法的内容.我也读过关于Shoulda的内容,它介于两个框架之间.我的问题是,我应该把时间花在RSpec或Shoulda上,或者我应该坚持使用Test :: Unit :: TestCase?任何有关该主题的意见表示赞赏.
通过回答关于属性可访问性测试的另一个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)