JavaScript单元测试使用Rhino

5
我希望有人能够帮助我解决一个编码问题。我目前正在处理服务器端JavaScript代码,该代码在第三方Java应用程序(Mirth Connect)中执行,使用Rhino JavaScript编译器执行实现的JavaScript。这对我来说非常有特殊意义,因为我有时需要与外部Java包进行交互。
我一直在寻找在这些代码上正式化我们的测试流程的方法。考虑到这一点,我一直在研究JavaScript单元测试框架,如QUnit和Jasmine。不幸的是,据我所知,这些框架主要针对在浏览器环境中运行的JavaScript代码进行测试,但我需要进行服务器端的测试。但这可以通过使用无头浏览器来完成运行这些框架。
我真正想知道的是这是否可能?我已经查看了许多资源,声称能够实现这一点,但自己无法做到。如果确实可能,是否有人有任何链接或简单的步骤说明我可以遵循?
如果有人能够确认这是一个可能的解决方案,我将非常乐意提供我想要测试的JavaScript代码示例、我想要从JavaScript调用的Java类以及单元测试。
先谢谢了!

我想知道为什么您在问题标签中添加了Mirth?在Mirth Connect下调试JavaScript与以“正常”方式调试JavaScript有些不同。 - Shamil
嗨。那无疑是真的 - 但在MC中尝试执行任何正式测试目前不是本地选项。因此,我们选择了一种解决方案,试图模拟MC环境。您有尝试在MC中开发的经验吗?我很想知道您可能有的任何见解。 - hizni
既然你问了,不要把这看作是广告。有一本书叫做“非官方 Mirth Connect v3.0 开发者指南”,其中解释了一些调试选项。它可以在 http://mirthconnect.isarp.com 上获得。 免责声明:我是这本书的作者,所以欢迎任何评论或建议。 - Shamil
@user3005941 哈哈!我比你更快,已经在你无耻地推销自己的书之前买了它! :) 我正在学习你写的一些主题(调试、扩展等),非常有趣和有用。谢谢。 - hizni
1个回答

3
我建议您使用Groovy/Java编写测试,并以此方式运行。虽然不是理想的选择,但Rhino提供了一个方便的桥梁来获取JavaScript对象。
我在这里写了关于设置的内容:http://ryanbrooks.co.uk/posts/2014-03-27-testing-rhino-js-spock/ 您也可以尝试使用Jasmine编写测试,并使用Karma来运行它们。您需要在Rhino上运行Karma,这会引起问题,但如果您在Rhino上使用CommonJS,可能会有更多的运气。
我的观点是,(通常情况下)Rhino现在仅在需要由Java进程执行JavaScript时使用,此时您可能关心Java端输出的测试结果,但可能因人而异。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接