gpt4 book ai didi

java - Spock - 返回固定值不按预期工作

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:32 24 4
gpt4 key购买 nike

如果我使用的术语不正确,我必须首先道歉。我仅将 groovy/java 用于自动化任务 (Gradle),而且我没有多年交付生产级软件的经验。

因此,我面临的挑战如下:我有一个规范试图测试返回字符串是否符合预期(几乎与 this 相同)。

def "pretty print returns correct string"() {
setup:
X509Certificate stubCert = Stub()
stubCert.getSubjectDN().toString() >> "Test"

when:
def output = X509CertificateUtils.prettyPrint(stubCert)

then:
output == "Subject: Test"
}

但是,区别在于我的方法约束返回一个 Principal 对象,而它是我真正想要 stub 的那个对象的 toString()。我以为我在上面做的是正确的,但它没有给出我期望的结果。

这是我的助手类。

import java.security.cert.X509Certificate

class X509CertificateUtils {

static def prettyPrint(X509Certificate x509Certificate) {
return "Subject: ${x509Certificate.getSubjectDN()}"
}
}

如果我运行这个测试,我会收到以下错误:

output == "Subject: Test"
| |
| false
| 38 differences (20% similarity)
| Subject: (Mock for )t(ype 'Principal' named 'dummy')
| Subject: (Tes------)t(-----------------------------)
Subject: Mock for type 'Principal' named 'dummy'

如有任何帮助,我们将不胜感激。

最佳答案

只需创建第二个 stub :

X509Certificate stubCert = Stub()
Principal princ = Stub()
princ.toString() >> "Test"
stubCert.getSubjectDN() >> princ

关于java - Spock - 返回固定值不按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443311/

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