所以在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
如何判断测试使用哪个输入?
答案 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。