mar*_*cgg 167 testing tdd ruby-on-rails
我熟悉这些概念(在大学里参加测试课程),但我不知道如何真正使用它们,因为我从未参与过"真正的"TDD项目.
我即将开始使用Ruby on Rails开发项目(最有可能使用2.3).此应用程序将用于管理数据,用户和一些文件.一开始不会太复杂,但在接下来的6个月内可能会扩展很多,所以我觉得现在是进入TDD的最佳时机.
我对如何做到这一点有一个基本的想法,但我仍然需要一些指示和建议:
我应该阅读什么Ruby on Rails TDD 101文章?
我需要测试什么?
我应该使用什么gem /插件?
我应该使用rspec吗?别的什么?
一旦我完成了所有测试课程,我该如何进行部署?(例如:持续整合)
TDD到底耗时多少?
我是否需要阅读一本关于此的书,或者我可以通过玩它并阅读在线教程来获得所有内容吗?如果我需要读一本书,那本书是什么?
我喜欢用例子学习,所以有人可以告诉我如何去采取TDD方法来解决这个问题:
我有公司.我有联系人.联系人可以链接到1家公司.公司可以拥有多个联系人.我想创建方法来创建联系人,公司和公司的联系人.
您不必在答案中使用此示例,但它会有所帮助:)
ez.*_*ez. 202
我应该阅读什么Ruby on Rails TDD 101文章?
我将从测试rails应用程序的指南开始.
此外Railscast在如何使用不同的测试工具,一些优秀的截屏.
我需要测试什么?
我将从模型开始,因为它们很容易测试.简单的规则是您需要覆盖测试中的每个if语句.
您应该测试方法的目的(以确保它按预期运行)以及所有边缘情况.
另外,请确保不要过度测试.
我应该使用什么gem /插件?我应该使用rspec吗?别的什么?
当你开始时,只需使用Test Unit.您可以使用rspec或cucumber熟悉基础知识.
Autotest如果你想要真正的测试驱动,是一个很好的工具.但这不是必需的"好事".
一旦我获得了所有测试课程,我该如何进行部署?
对这个问题不确定.您通常不会部署测试.完成所有测试类后,输入"rake test"即可运行所有测试.
TDD到底耗时多少?
它真的节省了时间.如果你喜欢迷宫拼图,你知道如果你从完成开始,它几乎总是更容易解决.与TDD相同.没有测试驱动,你一直在想'我下一步该做什么'.使用Test Driven,测试将告诉您下一步该做什么(如果逻辑不存在则会中断,因此您只需要修复损坏的部分).此外,您可以减少错误,从长远来看,这将节省您大量的时间.
我是否需要阅读一本关于此的书,或者我可以通过玩它并阅读在线教程来获得所有内容吗?如果我需要读一本书,那本书是什么?
你不需要一本书.学习任何东西最有效的方法是:做到这一点.遇到问题或问题后,请返回本书或在线资源.这也很敏捷.
在您的示例中,需要测试的内容包括:联系人可以链接到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
Run Code Online (Sandbox Code Playgroud)
Wol*_*old 13
我制作了一个6集的视频系列,在2010年夏天在旧金山作为公共课程教授.该材料涵盖了使用RSpec 1.3在Rails 2.3中的测试和开发人员效率.略有过时,但主要概念适用于Rails 3和Rspec 2.x
http://www.rubyfocus.biz/class_video/2010/07/19/rails_tdd_class_1.html
| 归档时间: |
|
| 查看次数: |
47900 次 |
| 最近记录: |