当前位置: 首页 > 知识库问答 >
问题:

Spring3.2是否支持使用Spock进行测试

赏航
2023-03-14

我对测试有点陌生(吓人,嗯),所以如果这是无知的话,请原谅我。

根据对测试框架所做的更改,spock spring 0.7-groovy-2.0是否与新的spring 3.2版本兼容?

我已经查看了正在测试的Spring 3.2文档:

以及新闻下的斯波克文档:

但是,没有任何东西可以帮助我判断新的Spring3.2测试框架是否仍然允许以Spring3.2测试(Spring3.2文档第11.3.4节)所述的方式配置Spock规范的测试上下文,以便我的带注释的bean是可注入的。

我还是尝试了,但是在加载测试上下文时没有成功,尽管不依赖于注入的bean的测试通过得很好。

我可以提供我的@ContextConfiguration尝试的详细信息(在上面引用的Spring 3.2文档第11.3.4节中尝试了位置=类=模式),如果它应该工作的话,但是现在我的问题只是这样:Spock规范是否可以测试上下文仍然配置为使用Spring 3.2?。

如果是这样的话,任何成功的例子都会很好(没有看到Spock支持的Spring3.2)。

谢谢。

共有2个答案

安高义
2023-03-14

在彼得回答的启发下,我发现测试环境确实很好。以下是我使用的,并且运行正常:

个人服务pec.groovy:

@ContextConfiguration(locations="classpath*:/PersonServiceSpec-context.xml")
class PersonServiceSpec extends Specification {

    @Autowired
    PersonService personService;

    def username

    def setup() {
        this.username = "tester"
    }

    def "Does search for username pull tester" () {

        expect: "tester" == username;
    }

    def "PersonService exists" () {
        expect: personService != null;
    }

}

在这个PersonServiceSpec上下文中。放在类路径上的xml(我的maven项目的src/main/resource):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="personSevice" class="<qualifiedname>.services.TPersonServiceImpl" >
</bean>

</beans>

和一个存根的类,实现了我的接口方法。

测试通过了。

薛枫
2023-03-14

据我所知,Spock的Spring集成应该可以很好地配合Spring 3.2中的新测试功能。与使用JUnit测试基于Spring的应用程序相比,唯一需要的更改是(一如既往):

  • 删除@RunAnd注释
  • spock-Spring放在测试类路径上

请注意,不能使用扩展Spring测试基类的旧方法。相反,您必须使用基于注释的Spring测试方法。

如果您发现上面概述的策略不起作用(并且您使用JUnit进行了相同的测试),请在http://issues.spockframework.org.

 类似资料:
  • 问题内容: 有什么方法可以确定正在运行的备份中有多少已完成或剩余多少? 问题答案: 是的,2010年3月27日提交了一个补丁: 这个新补丁有一个额外的参数–show-progress-size,默认情况下设置为10,000。因此,当使用– verbose时,每10,000行将得到一个常规状态输出,该状态输出是转储特定表的行数。 因此,请检查您的版本,并根据需要进行更新并享受。

  • 问题内容: 我们有几个数据模式,我们研究了向Liquibase的迁移。(其中一种数据模式已经迁移到Liquibase)。 对我们来说重要的问题是Liquibase是否支持空运行: 我们需要在所有架构上运行数据库更改而无需提交,以确保我们没有问题。 如果成功,则所有数据库更改都将再次通过提交运行。 答案后添加 我阅读了有关updateSQL的文档,但它不能满足“快速运行”的要求。它只是生成SQL(在

  • 我们使用JSch库(JSch-0.1.55.jar)与SFTP服务器(Bitvise)建立连接。 我们正在使用PPK2私钥格式,它的工作与提到的SFTP服务器很好。但是,当使用PPK3私钥格式时,它不能与同一服务器一起工作。 JSch库(jsch-0.1.55.jar)是否支持PPK3格式? 有人可以帮助这篇文章或任何解决问题的方法吗?

  • 使用Spock运行集成测试(例如)的最佳方式是什么?我想引导整个Spring Boot应用程序,并执行一些HTTP调用来测试整个功能。 我可以用JUnit(首先运行应用程序,然后执行测试): 但是有了Spock,应用程序就不会启动了:

  • Exception:二进制XML文件第30行:二进制XML文件第30行:inflating类Android.support.design.widget.textInputLayout由:Android.view.filflateException:二进制XML文件第30行:inflating类Android.support.design.widget.textInputLayout由:java.l

  • 我配置了一些测试,根据web应用程序中的登录尝试检查不同的消息。因为消息和输入字段将在第三次登录尝试时更改。 登录是基于向特定电话号码发送密码的两步登录,因此在第一页LoginPage中,用户介绍他们的Id和电话号码,然后将其重定向到第二页ValidationLoginPage,用户在其中介绍接收到的密码。 我想检查一下,在第二个页面中,用户只能引入三个错误的密码,在第四次尝试时,引入密码的输入将