为程序编写测试文件

时间:2013-12-30 21:32:47

标签: ruby testing

所以在stackoverflowers的帮助下,我已经开始并发布了我的第一个Ruby程序。这是一个简单的程序,只能以一种方式启动和运行。 现在我想为那里的程序编写一个测试文件:https://github.com/saigkill/youtube_dlhelper。 相关文件位于lib /和lib / youtube_dlhelper下。 我已经阅读了很多关于rspec,黄瓜和其他测试内容的网站。但我不确定,我的程序中可以测试什么。 也许有人可以帮我这个吗?


非常感谢你。现在我想我已经理解了基础知识。 我已经定义了不同的测试用例: *使用url作为参数运行脚本 - >应该是passig *运行没有参数的脚本 - >应该失败。

现在,我对如何扩展测试以向该交互式脚本提供输入感兴趣。启动脚本后,我正在使用该代码:

def self.check_target
      @entrygroup = ask 'What kind of entry do you have? (Interpret or Group)'

      case
        when @entrygroup == 'Interpret' then
          @firstname = ask 'Whats the first name of your interpret?'
          @surname = ask 'Whats the surname of your interpret?'
          $folder = "#{@surname}_#{@firstname}/Youtube-Music"
        when @entrygroup == 'Group' then
          @group = ask 'Whats the name of the group?'
          $folder = "#{@group}/Youtube-Music"
        else
          puts 'Just the entries "Interpret" or "Group" are allowed'
          abort('Aborted')
          puts 'Breakpoint'
      end
    end

如何判断测试使用哪个输入?

1 个答案:

答案 0 :(得分:1)

我是TDD的新手。我编写了Sinatra个应用程序,我使用 RSpec Capybara ,但是我会尝试学习和使用 minitest 现在是红宝石核心的一部分。如果您想使用最新版本,可以使用gem。

所有测试框架的代码语法相对容易学习。您将了解它如何在15-20分钟的顶部工作。您必须了解的是,TDD是一种关于如何开发程序的策略策略

总结一下:

  • 首先编写失败
  • 的测试
  • 然后您编写代码

然后重复此过程。一旦你习惯了编写测试,你就会精通编写更聪明,更智能的测试,即检查对象,测试类等。这里有趣的部分是,如果你的测试随着时间的推移变得足够聪明,你的新代码何时以及是否会破坏你知道,旧部件。

就RSpec而言,在项目的根路径中创建一个spec/目录 - 你可以选择你的路径,但我认为没有理由破坏这里的约定 - 并添加这些行到你的.rspec

--format progress documentation
--color

我将autotest与RSpec一起使用。 Jeffrey Way有一个非常好的web tutorial,它展示了如何将 RSpec autotest 一起使用,你可能想看看。

PS。对于minitest,请查看here