我想为我的应用程序编写测试,虽然每次查看rspec.info时,我都没有看到明确的路径,即“正确行事”并首先进行测试。我在rspec上观看了不止一次的peepcode视频,但却没有。我想对我的工作感到更自豪,我认为测试会有所帮助。我怎样才能突破这个心理障碍?
答案 0 :(得分:8)
查找可以奖励您进行测试的工具。例如,可以非常轻松地运行所有测试并获得类似
的消息73 tests passed.
尝试random testing因为您可以快速轻松地测试很多值。
查看您的语言是否提供测试覆盖率分析工具,该工具可为您提供语句覆盖率百分比或块覆盖率百分比。将代码覆盖率从60%提高到90%是非常有益的 - 如果你很幸运,你会发现错误。
我的主要建议是在测试中量化您的进度,以便您可以看到数字上升。这将使它更具激励性。 (哎呀,我想知道在这个网站上可以找到其他数字......)
答案 1 :(得分:4)
在我开始创建一些测试宏之前,我一直很讨厌它。喜欢登录或访问主页。我发现开始探究我的测试框架真正能做的事情很有趣。 这也有助于让其他人通过写一些来帮助我。我立刻发现了明显的改进,这让我想进入并开始改进。
答案 2 :(得分:3)
“测试你不想破坏的东西。”
首先确定优先顺序可能会有所帮助。我知道在黄瓜验收测试之上输入完整的三层模型,视图和控制器规格可能是件苦差事。因此,一个想法就是测试应用程序中最关键的内容,并在遇到不想再看到的错误时添加测试。
“始终以失败的测试开始。”
黄瓜以纯文本“故事”为特色,非常适合进行一些真正具体的测试。运行。也许这将是你可以开始的地方。 Cucumber并不适用于基于AJAX的应用程序,因为你必须使用Selenium或Watir。在编写一行代码之前,您可以从一个失败的故事开始,然后快速从那里开始使故事通过。
“不要测试,指定。”
不要考虑测试,而是尝试进行心理转换:您不是在测试,而是指明应用程序的行为方式。这是设计工作,不像测试那么无聊。 :)
答案 3 :(得分:2)
这样想:如果你不测试,你的代码就会被破坏。
答案 4 :(得分:1)
您需要查看测试将为重构和扩展代码带来的价值。一旦您有一组定义类行为的测试,您就可以随时开始进行更改以改进代码。您的测试将确保您所做的不会破坏系统。当您为代码添加新功能时,运行现有测试将使您确信您添加的新代码不会破坏任何其他代码。
关键是要采取长期观点。测试是一项投资。它可能会与您编写的代码略有不同,但最终它会开始以兴趣回报。您存储的资金将使添加新功能时更快速地前进。
答案 5 :(得分:1)
假设您已经有一个要修复的错误列表,我总是想回过头来尽可能创建一个演示错误的自动化测试。然后修复bug并观察测试通过。既然你必须测试bug,并且bug应该已经给你足够的信息来重新创建它,你可以看到你的测试立即返回。
最终,您将开始感受到将测试放在一起以及如何编写测试,并且您不需要现有错误的“蓝图”。
答案 6 :(得分:1)
几天前我写了一篇关于这个案子的动机帖子。以下是摘要:
随时开始编写测试 这样做的机会(即 你写了一些代码)。选择任何工具 这对你有意义并且写任何东西 测试,你觉得可以覆盖 至少你的微小行为 申请(不关心 保险范围或任何其他可怕的条款 第一天)。不要害怕 原始测试和琐碎的断言 - 随着您的测试覆盖率的增长,您将获得更多信心 你会变得越来越快乐 请注意,您不需要按F5 经常这样。想一想 以其他积极的方式进行测试 - 你做得更好,时间越少 你需要花费你的活动 不喜欢(看着旋转 在浏览器中刷新图标, 调试)和你的事情 爱。
如果您有兴趣,这里是whole thing。
答案 7 :(得分:1)
如前所述,进入测试的最简单方法是使用回归测试。
我也避免做控制器规范 - 它们是PITA。做重模型测试,因为这是逻辑应该放在首位。
在进入rails项目之前,尝试规范/测试一个普通的ruby项目。
答案 8 :(得分:0)
好吧,我会告诉你怎么做的!
在您尝试自动化之前,首先要在不同的应用程序上执行以下10次
负面情景,其结果将是负面的。 它可能是错误的数据输入,并为您提供正确的输出。
例如登录屏幕: 可能有很多情况下正确的用户错误的PW,错误的用户正确的PW ....最重要的是你不要放弃它,除非它突破它。这是你的口头禅。
HMMM现在你想像一个测试者现在转向UR系统, JUS写下了负面的测试和他们的结果 和他们的正确的测试 设计它。 现在开发框架