我应该读什么Ruby on Rails TDD 101文章?
我将从测试Rails应用程序的指南开始。
此外,Railscast还提供了一些有关如何使用不同测试工具的出色屏幕录像。
我需要测试什么?
我将从模型开始,因为它们易于测试。一个简单的规则是,您需要覆盖测试中的每个if语句。
您应该测试该方法的用途(以确保其按预期运行)以及所有边缘情况。
另外,请确保您不会结束测试。
我应该使用什么gem / plugin?我应该使用rspec吗?还有吗
开始时,只需使用Test Unit
。您可以在熟悉基础知识之后使用rspec
或cucumber
。
Autotest
如果您想真正进行测试驱动,这是一个不错的工具。但这不是必需的。
完成所有测试课程后,如何去部署它们?
不确定这个问题。您通常不部署测试。拥有所有测试类别后,只需键入“ rake test”即可运行所有测试。
TDD到底是多么耗时?
确实节省了时间。如果您喜欢迷宫拼图,那么从头到尾,解决难题几乎总是比较容易的。与TDD相同。如果没有“测试驱动”,您将一直在思考“下一步我该怎么办”。使用“测试驱动”,测试将告诉您下一步该做什么(如果逻辑不存在,它将中断,因此您只需要修复损坏的部分)。而且,您的bug更少,从长远来看可以节省大量时间。
我需要阅读一本与此有关的书吗?还是可以通过玩转它并阅读在线教程来获得所有内容?如果我需要读书,那是什么书?
您不需要一本书。学习任何事物的最有效方法是:做到这一点。遇到问题时,请返回本书或在线资源。这也是敏捷的。
在您的示例中,需要测试的事物是:一个联系人可以链接到1个公司,一个公司可以有多个联系人,创建创建联系人的方法,以及将联系人链接到公司。
class CompanyTest <Test::Unit
def test_relationship # test associations/relationships
c = companies(:some_company)
assert_equal [a list of contacts], c.contacts # make sure a company can have multiple contacts
end
end
class ContactTest<Test::Unit
def test_relationships
c = contact(:some_contact)
assert_equal some_company, c.company # make sure the contact link to 1 company
end
def test_create/add
# test create contacts, here you need to make sure the contact is created correctly, and linked to company correctly
end
end