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

时间:2017-01-25 09:30:55

标签: java ruby jruby jruby-java-interop

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

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

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

注意:它们需要是真正的宝石,模拟很好。

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

1 个答案:

答案 0 :(得分:2)

我假设你正在使用JRuby。检查thisthis。有了这个,你可以做相反的事情并在Jruby内部使用Junit。