当你在嵌入式JRuby中执行Ruby脚本时,你能使用gems吗?

DP_*_*DP_ 7 ruby java jruby jruby-java-interop

碰巧我需要对这个Ruby脚本进行单元测试.这是一个基于Sinatra的Web应用程序,它使用了几个宝石.

我在Java方面比在Ruby方面有更多的经验,时间非常重要(优雅不是),所以我想我可能会更快,如果我在JUnit类中执行该脚本并模拟它所依赖的所有子系统(Web服务器) ,数据库).这样我就可以使用我的Java技能来测试Ruby系统.它看起来像你可以在Java程序中嵌入的Ruby.

问题:我可以在嵌入式Ruby中使用gem,即创建一个可以在任何机器(Windows,Linux,Mac)上执行测试的Java程序,并且不需要我手动在其上安装几个宝石吗?如果有,怎么样?

注意:它们需要是真正的宝石,嘲笑都很好.

更新1(25.01.2017 13:14):一个明显的解决方案是将该脚本的逻辑提取到一个没有依赖项的单独的Ruby文件中.这可能是代码的80%.然后,即使没有宝石,我也可以测试该逻辑文件.

Zac*_*tle 2

我假设您正在使用 JRuby。检查这个这个。有了这个,也许您可​​以做相反的事情并从 Jruby 本身内部使用 Junit。