在使用Ruby编码时,为什么使用irb(而不是基于GUI的测试方法)会有帮助?

Ric*_*mas -6 ruby irb

我已经读过,用Ruby编程时irb的目的是帮助实时测试代码.我之前学过HTML和CSS,那时我只需在浏览器中打开页面并保存/刷新页面就可以测试我的代码.irb是否与Ruby执行类似的功能?如果是这样,我是否认为在irb中测试Ruby代码(而不是浏览器)的好处是,irb可以更容易地将Ruby中的错误与Javascript/HTML /等中的错误分开?看来Ruby程序迟早会在浏览器中运行(理论上),在我看来,程序员似乎希望测试条件尽可能接近真实用例环境.

Hen*_*son 6

所以这个问题与测试有关,这是一个非常广泛的主题,但我会尝试从我的观点回答你的问题.

首先,我们必须就讨论Ruby和相关网络技术时所站立的平台达成一致.

1 - Ruby并不是严格意义上的网络语言.这是一个巨大的误解.Ruby不是Ruby on Rails.因此,现在大多数应用程序最终都在浏览器中,这要归功于RoR而不是Ruby.

Ruby是一种万能的语言,即.它可以做很多事情.脚本,网络,"正常应用程序".如果你有问题,Ruby可以作为一种语言而不是解决它.

2 - IRB是Ruby的REPL(读取eval打印循环),或者更常见的是解释器,它不是编译器.它代表Interactive RuBy shell.

那么问你的问题:

你没有用IRB测试perse,你使用IRB来测试类似1 + 1或类似的较小类型的语句

my_name = "henrik"
my_age = 28
p = Person.new(my_name, my_age)
p.my_name
>> "henrik"
Run Code Online (Sandbox Code Playgroud)

您可以将IRB视为"您的小型测试向导",即."这是否有效,让我们在IRB中尝试一下!"

对于您描述的实际测试,您使用RSpec或使用其他类型的测试框架,如果您想进行独立测试,您可能会这样做ruby my_test_file.rb.你my_test_file.rb包含所有测试的地方.

RSpec读到这一点,这在从Ruby开始测试时非常有价值.

以你描述的方式进行测试是非常繁琐的,但它与IRB无关.