我应该阅读什么 Ruby on Rails TDD 101 文章?
我将从a guide to testing rails applications 开始。
另外Railscast 有一些关于如何使用不同测试工具的精彩截屏视频。
我需要测试什么?
我将从模型开始,因为它们很容易测试。简单的规则是您需要覆盖测试中的每个 if 语句。
您应该测试方法的用途(以确保它按预期运行)以及所有边缘情况。
还要确保您不会过度测试。
我应该使用什么 gem/插件?我应该使用 rspec 吗?还有什么?
开始时,只需使用Test Unit。熟悉基础知识后可以使用rspec或cucumber。
Autotest 是一个很好的工具,如果您想真正进行测试驱动。但它不是必需的。
一旦我完成了所有的测试类,我该如何去部署它们?
不确定这个问题。您通常不会部署测试。一旦你有了所有的测试类,简单的输入“rake test”来运行你的所有测试。
TDD 到底有多耗时?
真的很节省时间。如果你喜欢迷宫拼图,你知道从头到尾解决它几乎总是更容易。与 TDD 相同。如果没有测试驱动,您会一直在思考“我接下来应该做什么”。使用测试驱动,测试会告诉你接下来要做什么(如果逻辑不存在,它会中断,所以你只需要修复损坏的部分)。此外,您的错误更少,从长远来看,这将为您节省大量时间。
我是否需要阅读有关这方面的书或
我可以通过玩得到一切吗
随身携带并在线阅读
教程?如果我需要看书,
什么书?
你不需要一本书。学习任何东西的最有效方法是:去做。一旦遇到问题或问题,请返回书籍或在线资源。这也很敏捷。
在您的示例中,需要测试的内容是:一个联系人可以链接到 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