0

我在基于 Apache sling 的环境中工作。我的大部分代码库可以在使用 Junit 测试编译时“正常”进行单元测试。

有一个功能子集需要通过框架传入的 HTTP 请求的上下文才能正常工作,而模拟我所依赖的所有框架提供的对象的工作太困难了。

在我的测试构建周期中,我当前的方法是:1)Junit 使用标准 JUnit 测试测试我能做的所有事情 2)编译代码并将其部署到我的本地实例 3)向我的本地实例上运行的特定“测试”资源发出 HTTP 请求“测试”并返回一些值 4)根据预期值检查返回值(重复 3-4)

我试图弄清楚如何最有效地在平台之外定义我的测试(从我发出 HTTP 请求的地方)并从我的本地实例的上下文中执行它们。

关于构建和执行测试套件的最佳方式的想法是否满足了这些要求?

4

1 回答 1

0

我相信你试图做的是运行通常称为“集成测试”或“验收测试”的东西。尽管界限很模糊,但集成测试/验收测试通常涉及多个组件,而单元测试应该只关注一个组件并模拟所有内容。

我最好的建议是您创建一个单独的测试套件,该套件将启动您的 sling 服务器(在预定义的端口上),然后运行一组测试,对您的服务器进行 RESTful 调用。

我建议您将Spring Rest Template 或 Jersey's Rest Client与 JUnit 一起使用。您的构建脚本必须启动服务器。许多人使用Cargo(不幸的是,货物站点现在已关闭)来做到这一点。

慢慢地,您将制作一个库和便利装置/方法/对象,以便它变得更容易。

于 2012-05-20T18:19:48.903 回答