黄瓜和春靴

编程入门 行业动态 更新时间:2024-10-26 05:25:30

<a href=https://www.elefans.com/category/jswz/34/1747678.html style=黄瓜和春靴"/>

黄瓜和春靴

我是自动化测试的忠实粉丝。 无论是工作还是个人,都可以使生活更轻松。 我不仅在谈论单元测试。 集成/验收/验证/端到端测试(取决于您喜欢的术语)可能是非常宝贵的工具,可以使您从单元测试中获得的其他体验完全覆盖其他水平。

但是,为此,您需要能够实际运行要测试的堆栈。 而且您需要能够轻松编写要针对堆栈运行的测试。

For this level of tests, I'm a big fan of Cucumber - for which there is a Java Runner. This gives complete separation between the test definitions and the actual code that performs the logic, which means that the implementation of the tests can be changed without changing the business definition.

通过Spring Boot和Cucumber Spring集成,可以真正轻松地将服务作为测试引擎的一部分真正启动。 一次启动Spring上下文,使用它执行所有功能,然后关闭Spring上下文。 它甚至支持启动在随机端口上侦听的应用程序,以免发生冲突。

那么,您如何进行这项工作? 黄瓜测试分为三个部分。 有测试运行器,功能文件和步骤定义。

Test Runner是一个琐碎的JUnit类,仅使用Cucumber JUnit Runner,并在此完成所有繁重的工作。 我的通常看起来像:

/*** Test runner for all of the tests*/
@RunWith(Cucumber::class)
@CucumberOptions(tags = arrayOf("~@ignore"),format = arrayOf("pretty","html:target/site/cucumber/cucumber","json:target/failsafe-reports/cucumber.json"),strict = true)
internal class CucumberIT

然后,功能文件位于测试运行程序所在的同一包下的任何位置-它将在运行时全部找到它们。

步骤定义是它变得聪明的地方。 Cucumber-Spring允许您指定一个Spring Context,该上下文已启动并用于构建步骤定义。 这里的要求是您只能使用一整个测试套件的Spring Context。 这意味着我们需要一个Spring Context,其中包括我们的测试bean,还需要导入Spring Boot Application才能运行。

我们为之提供动力的方法是在一个步骤定义上添加两个注释-哪个是无关紧要的。 (在以后的文章中将对此有更多的微妙之处)。 这些看起来像:

@ContextConfiguration(locations = arrayOf("classpath:/testContext.xml"))
@SpringBootTest(classes = arrayOf(Application::class), webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
internal class SomeStepDefs {}

最后,您需要一种方法来实际调用您正在运行的Spring Boot应用程序。 有两种管理方法,具体取决于您要进行REST调用还是Web浏览器。

对于REST调用,您需要在类型为的Bean中自动连线org.springframework.boot.test.web.client.TestRestTemplate。 出于所有意图和目的,这是一个RestTemplate,其编码旨在知道如何调用正在运行的Spring Boot应用程序。 它知道要调用的基本URL才能到达正确的端点。

对于其他任何事情,您都可以使用org.springframework.boot.context.embedded.LocalServerPort将值注入类的批注包含Spring Boot应用程序正在侦听的端口。 然后,您可以使用此端口为所需的任何目的写入所需的任何URL,例如 为硒供电。

from: //grahamcox82/cucumber-and-spring-boot

更多推荐

黄瓜和春靴

本文发布于:2024-02-06 07:53:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1747832.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:黄瓜

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!