如何开始测试?

时间:2011-03-10 19:37:24

标签: ruby-on-rails-3 testing

我最近一直在阅读很多关于RSpec,Shoulda,Cucumber,Test :: Unit,FactoryGirl,Fixtures等等的信息。但是我仍然对于每种测试用于什么样的测试感到困惑。模型,控制器,视图,助手的测试类型。

我不知道从哪里开始。有人可以帮我对我应该开始的方式进行“订购”吗?例如,我应该学习Test :: Unit,然后是RSpec然后是Cucumber吗?

2 个答案:

答案 0 :(得分:2)

我建议你阅读Roy Osherove撰写的'The Art of Unit Testing'。我强烈建议您阅读第1部分和第4部分。

虽然专注于单元测试(duh),但有一些解释清楚的概念确实帮助我更好地理解了测试领域。这不是一本复杂/无聊的书,即使没有任何先前的测试知识,我也很喜欢阅读它。希望你也喜欢它。

RGDS

答案 1 :(得分:1)

我有同样的问题:) Rspec用于单元测试。这意味着您可以测试模型,控制器甚至视图,以查看它们是否按照您的意图执行操作。

请注意,测试不会强制执行行为,只是测试它。看一下这个例子:

describe "A new User" do
    let(:user) { Factory(:user) }

    it "is not valid if first_class is not either [Magician, Fighter, Ranger]" do
        user.first_class = 'warrior'
        user.should_not be_valid
    end
end

这是一个使用工厂的模型规范(检查工厂女孩的更多)并定义如果first_class不是上面的3之一并且类似于“warrior”,则测试应该失败。创建此测试后,您将向模型添加验证:

validates :first_class, :presence => true, :inclusion => %w(Fighter Ranger Magician)

现在测试通过了:)

在检查了rspec之后,你应该看看Cucumber,它实际上是一个场景测试宝石。在那里,您指定与正则表达式匹配的整个方案。检查来自railscasts.com的非常好的railscast,以获得非常好的黄瓜介绍。

希望能给你一些见解:)。