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

如何在Geb grails中设置和删除功能测试数据

程俊力
2023-03-14

因此,目前我的每个测试规范类看起来类似于:

@Stepwise
class ExampleSpec extends GebReportingSpec {

    def "valid root user logs in"() {

        given: "I am at the login page"
        to LoginPage

        when: "I enter root's credentials"
        username = "root"
        password = "password"

        and: "I click the login button"
        loginButton.click()

        then: "I am logged in and directed to the welcome page"
        at WelcomePage
    }
}

现在,我的问题是我似乎不能创建一个新的测试(在第一个测试之上)可以创建测试数据。如果没有有效的givit/when/then语句,测试似乎不会执行,从现有测试中调用方法也不会工作。我已经研究了grails-remote-control插件来帮助我,我相信这将使我能够成功地使闭包设置数据,但我不确定从GebReportSpecs(或某个抽象父级)中调用该插件的最佳机制。

下面是我希望能够做的事情的简要概述,要么将“setup data()”作为第一个测试,要么从测试中调用该方法······两者似乎都不起作用。

def remote = new RemoteControl()
def setupData() {

    def id = remote {        
        def ShiroUser user = new ShiroUser(username: "root", ...)
        user.save()
        user.id
   }
   println(id)
}

.... Tests then follow

共有1个答案

楚彦
2023-03-14

(未经测试)
GebReportingSpec扩展了GebSpec,后者最终扩展了spock.lang.specification,后者具有Fixture方法。

您可以像这样使用它们:

@Stepwise
class ExampleSpec extends GebReportingSpec {
    def setupSpec(){
       super.setupSpec()
       //setup your data
    }

    def cleanupSpec(){
       super.cleanupSpec()
       //I do not think you would need anything else here
    }

    def "This is test 1"(){

    }

    def "This is test 2"(){

    }
}

不能将setup用作测试方法之一,因为状态不是为单个测试用例维护的。是这样的:-

setup called -> test1 -> teardown called  
setup called -> test2 -> teardown called  
setup called -> test3 -> teardown called  
.........
 类似资料:
  • 本文向大家介绍JavaScrpt中如何使用 cookie 设置查看与删除功能,包括了JavaScrpt中如何使用 cookie 设置查看与删除功能的使用技巧和注意事项,需要的朋友参考一下 JS cookie 常用的3个预设函数(库) 记住用户名 以上所述是小编给大家介绍的JavaScrpt中使用 cookie 设置 查看 删除功能的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及

  • 在我们的测试功能(用于API测试)中,我们在后台创建测试用例所需的数据(例如:用户,他们的数据...)。我们希望在不同的模式下使用相同的测试功能。如何在后台设置数据?我的意思是我们如何为我们的测试功能使用“不同的”背景。我们希望运行相同的测试功能: > 在管理或非管理模式下,所以在后台我们需要创建一个用户帐户,然后生成一个访问令牌,然后使用该令牌为该用户添加一些数据;该令牌用于每个场景; 对于注入

  • 我的项目结构如下: 在Jenkins工作中,根pom是(因为我希望整个项目是为功能覆盖的JaCoCo报告构建的),当运行覆盖报告生成的Maven目标时,我将pom指定为模块FT/pom.xml. 现在,当显示测试结果时,它向我显示了一个总的being=FTs其他模块中的所有单元测试,而我想从报告生成中排除UTs。 但我不认为这与杰科科有关,因为我说的不是杰科科的报告,而是测试结果。单元测试也被计算

  • 我已经用FirebaseUI-Android库实现了。 Firebase说,如果您添加了addSnapshotListener,则必须删除它,而不需要分离监听器 当您不再对侦听数据感兴趣时,必须分离侦听器,以使事件回调停止被调用。这允许客户端停止使用带宽来接收更新。您可以使用上的取消订阅功能来停止侦听更新。

  • 所以我第一次在spring boot测试时遇到了一个问题。当我执行测试时,这些值实际上被删除了。我更愿意对此进行模拟,这样这些值就不会被删除。 我的测试类:@SpringBootTest@AutoConfiguremockMVC

  • 在seborn lmmap函数中,我们有一个色调参数,它会自动在右侧绘制一个颜色条。如何禁用/删除颜色条? 下面是一个将生成颜色条的示例代码 我试图调用颜色条对象并将其删除。在传统的matplotlib方式中,我们可以使用 但我看不出它对lmplot有什么作用。另一种替代方式是sns。热图函数,其中提供cbar参数 但在lmplot中,没有cbar选项。在lmplot中,最好的方法是什么?