为Spring启动应用程序编写Spock测试用例

时间:2015-06-17 08:03:44

标签: java spring groovy spock

我正在开发spring boot应用程序。我必须为它编写测试用例。我之前没有编写过测试用例,所以有人建议使用spock框架。我探索了spock,我认为它与groovy语言更相关。

我可以为我的spring应用程序编写spock测试用例吗?

如果是这样,那么你能否建议我更好地记录"如何在春季启动应用中使用它"?

2 个答案:

答案 0 :(得分:7)

是的,您可以为春季应用程序编写spock测试用例。

查看official documentation有关使用Spring Boot进行Spock测试的示例

  

35.3.1使用Spock测试Spring Boot应用程序

简单的Google搜索会显示Using Spock to test Spring classes的基本示例。

  

Spock很大程度上依赖于Spring的TestContext框架而且确实如此   这是通过@ContextConfiguration注释。这允许测试   规范类,用于从一个或多个加载应用程序上下文   位置。

Spring One g2x有一篇关于使用Spock测试Java,Groovy,Spring和Web应用程序的大型演示文稿。

Groovy和Java可以自由混合在一起,您可以使用任何您喜欢的基于Java的库,或者使用基于Groovy的库。

  

Spring框架支持Groovy,而且 - 毫不奇怪 - Spring   TestContext框架适用于Spock Spock规范   从正常的JUnit测试中运行IDE,最后但不是   至少,实现它们是学习Groovy的好机会   language.source

答案 1 :(得分:1)

以下是帮助您使用Spring启动编写spock测试的步骤。

@ContextConfiguration(classes = StartApplication.class, loader =     SpringApplicationContextLoader.class)
@TestPropertySource(locations = "classpath:application-iTest.properties")
@WebAppConfiguration
@ComponentScan( "com.xyz")
@ActiveProfiles("iTest")
@IntegrationTest("server.port:0")
class TestAuditReport extends Specification{

   def Test1(){
    given :
    when:
    then:
    1==1
}

}
  • @ContextConfiguration(classes = StartApplication.class,loader = SpringApplicationContextLoader.class) // StartApplication.Java是 运行Spring启动应用程序的主类。
  • @TestPropertySource(locations = “classpath:application-iTest.properties”) //
  • @WebAppConfiguration //如果 Web应用程序已在您的应用程序中配置。
  • @ComponentScan(“com.xyx”) //要扫描的包名称。
  • @ActiveProfiles(“iTest”) //定义的个人资料名称即iTest因此文件名“ filePrefix-iTest.properties 将是在/ test / java / resource文件夹中查找“
  • @IntegrationTest(“server.port:0”) //它会运行任何端口号, 只有在启用@WebAppConfiguration时才需要此注释。 class TestAuditReport扩展规范