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 。 熟悉基础知识后,可以使用rspeccucumber

    如果你想成为真正的测试驱动者, 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