7

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

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

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

注意:它们需要是真正的宝石,模拟就可以了。

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

4

1 回答 1

2

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

于 2017-01-30T22:12:12.377 回答