Ruby on Rails如何开始使用TDD?
我对这些概念很熟悉(在大学里参加过测试课程),但我不确定如何真正使用它们,因为我从未参与过“真正”的TDD项目。
我即将开始使用Ruby on Rails开发项目(很可能使用2.3)。 此应用程序将用于管理数据,用户和一些文件。 起初它不会太复杂,但在未来6个月内可能会扩展很多,所以我觉得现在是进入TDD的正确时机。
我有一个关于如何做的基本想法,但我仍然需要一些指导和建议:
我应该阅读哪些Ruby on Rails TDD 101文章?
我需要测试什么?
我应该使用什么宝石/插件?
我应该使用rspec? 还有别的吗?
一旦我有了所有的测试课程,我该如何去部署它们? (如:持续集成)
TDD真的是如此耗时?
我需要阅读一本关于此的书吗?或者我可以通过玩弄它并阅读在线教程来获得一切吗? 如果我需要读一本书,什么书?
我喜欢学习示例,所以有人会告诉我如何去采取TDD方法来解决这个问题:
我有公司。 我有联系人。 联系人可以链接到1家公司。 一个公司可以有多个联系人。 我想创建方法来创建联系人,公司并将联系人链接到公司。
你不必在你的回答中使用这个例子,但它会帮助你:)
我应该阅读哪些Ruby on Rails TDD 101文章?
我将从一个测试rails应用程序的指南开始。
Railscast还有一些关于如何使用不同测试工具的优秀截屏。
我需要测试什么?
我将从模型开始,因为它们很容易测试。 简单的规则是你需要覆盖你的测试中的每个if语句。
您应该测试该方法的用途(以确保其功能与预期的一样)以及所有边缘情况。
还要确保你不会因测试而结束。
我应该使用什么宝石/插件? 我应该使用rspec? 还有别的吗?
当你开始时,只需使用Test Unit
。 熟悉基础知识后,可以使用rspec
或cucumber
。
如果你想成为真正的测试驱动者, Autotest
是一个很好的工具。 但这不是必需的。
一旦我完成了所有的测试课程,我该如何去部署它们?
不确定这个问题。 你通常不会部署测试。 一旦你有所有的测试类简单的类型'耙测试'来运行所有的测试。
TDD真的是如此耗时?
它确实节省了时间。 如果你喜欢迷宫迷宫,你知道如果你从完成到开始,解决它几乎总是更容易。 与TDD一样。 没有测试驱动,你一直在想'下一步该怎么做'。 通过测试驱动,测试会告诉您下一步该做什么(如果逻辑不存在,则会中断,因此您只需修复损坏的部分)。 此外,您还拥有更少的bug,从长远来看可以为您节省大量时间。
我需要阅读一本关于此的书吗?或者我可以通过玩弄它并阅读在线教程来获得一切吗? 如果我需要读一本书,什么书?
你不需要一本书。 学习任何东西最有效的方法是:就这样做。 一旦遇到问题或问题,请返回本书或在线资源。 这也是敏捷的。
在你的例子中,需要测试的事情是:一个联系人可以链接到一个公司,一个公司可以有多个联系人,创建联系方式并将联系人链接到公司。
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
我制作了一个6集视频系列,在2010年夏季在旧金山作为公开课进行教学。该材料涵盖了使用RSpec 1.3的Rails 2.3中的测试和开发人员效率。 有点过时,但主要概念适用于Rspec 2.x的Rails 3
http://www.rubyfocus.biz/class_video/2010/07/19/rails_tdd_class_1.html
我推荐这本书:Ruby on Rails教程。 我几乎完成了它。 该书采用TDD 整本书。 试一试!
链接地址: http://www.djcxy.com/p/45691.html上一篇: How to get started on TDD with Ruby on Rails?
下一篇: Occasional stop on PowerPoint Chart interactions through Excel VBA