gpt4 book ai didi

unit-testing - chalice : Spock : Unit testing GORM domain class hooks

转载 作者:行者123 更新时间:2023-12-02 13:55:26 24 4
gpt4 key购买 nike

通常我最终会通过为约束和任何自定义方法(由我们在应用程序中创建)编写它们来为域编写测试用例,因为我们知道我们不应该进行明显的测试。

但是当我们开始使用覆盖插件时,我们发现我们的领域代码行没有被完全覆盖,这是由于我们从未编写过测试用例的 gorm hooks(onInsert, beforeUpdate)。

有没有办法我们可以测试这些。一种看起来很明显但不合适的可能方法是在这些钩子(Hook)中调用另一个方法(包含之前在钩子(Hook)中的所有代码)并仅测试该方法并且对钩子(Hook)无忧无虑。

任何解决方案...

编辑

我要进行单元测试的域中的示例代码:

class TestDomain{
String activationDate
def beforeInsert() {
this.activationDate = (this.activationDate) ?: new Date()//first login date would come here though
encodePassword()
}
}

如何在插入之前进行单元测试,否则我最终会编写集成测试用例?

最佳答案

也许像这样的单元测试:

import grails.test.mixin.TestFor

@TestFor(TestDomain)
class TestDomainSpec extends Specification {
def "test beforeSave"() {
given:
mockForConstraintsTests(TestDomain)
when:
def testDomain = new TestDomain().save(flush:true)
then:
testDomain.activationDate != null
}
}

关于unit-testing - chalice : Spock : Unit testing GORM domain class hooks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33911175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com