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

在spock测试中不能调用java构造函数

刁冠宇
2023-03-14

我试图从Spock测试中扩展GebSpec的类调用java构造函数。我有这样一个错误:“不允许构造函数;相反,定义一个'setup()'或'setup spec()'方法”。我需要打这样的电话:

public class Slider extends GebSpec{
private elem
public Slider(selector) {
    this.elem = page.driver.findElement(By.id(selector))
}

class Mytest extends GebSpec {
    def "try_to_call"() {
        given:
        to SomePage;
        when:
        Slider slider = new Slider("slider");
        then:
         ....some code....
    }
}

共有1个答案

梁华清
2023-03-14

slider不应该扩展gebspec,因为这样您将从测试实例化并调用测试。让Spock或JUnit完成运行测试的工作,好吗?

 类似资料:
  • 试图扩大Spock在工作中的吸引力,并遇到这个问题。实际上是试图为一个Groovy类编写单元测试,但它调用Java。静态方法调用私有构造函数。代码如下所示: “SolrzkClient”来自第三方(Apache)Java库。因为它试图连接到ZooKeeper,所以我想在这个单元测试中模拟它(而不是作为单元测试的一部分在内部运行一个)。 我的测试毫无困难地到达构造函数,但我无法通过CTOR: 反正有

  • 例如,我有一个这样的课; 我要做的是为模拟的构造函数编写单元测试。 如果是静态的,那么这将很容易,因为我可以使用然后调用构造函数。 有人知道有什么办法吗?

  • 问题内容: 试图扩大Spock在工作中的吸引力并遇到此问题。实际上是试图为Groovy类编写单元测试,但是它调用了Java。静态方法调用私有构造函数。代码如下: “ SolrZkClient”来自第三方(Apache)Java库。由于它试图连接到ZooKeeper,因此我想对此单元测试进行模拟(而不是在单元测试的内部运行)。 我的测试毫不费力地进入了构造函数,但是我无法超越那个ctor: 反正有这

  • 问题内容: 构造函数何时被调用? 创建对象之前。 在对象创建期间。 创建对象之后。 问题答案: 分配对象内存,初始化具有初始值的字段变量,然后调用构造函数,但是其代码在对象超类的构造函数代码之后执行。

  • 我在开始使用spock测试java代码时遇到了一个问题。运行测试时出现错误: 我使用Intellij和Maven,将依赖项放入pom文件: 创建了我的简单类:(在java中) 和测试(它是spock类): 我的项目树如下所示: 我试着跟随一些教程,但可能我错过了一些东西。我的项目有什么问题,为什么测试不起作用?

  • 问题内容: 如果一个类包含一堆静态方法,为了确保没有人错误地初始化该类的实例,我做了一个私有的构造函数: 现在..鉴于无法看到构造函数,该如何进行测试?可以测试吗? 问题答案: 使用反射,您 可以 调用私有构造函数: 但是,您甚至可以做到这一点: 通过在构造函数中引发异常,可以防止所有尝试。 我也会自己上课,因为“因为”: