gpt4 book ai didi

java - 将模拟对象作为 JUnit 参数传递给带参数的测试方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:15 24 4
gpt4 key购买 nike

我正在使用 junit 参数化方法进行单元测试。

最初,我曾经按照正常的参数化方法来测试我的工作流程 1 .但是后来我找到了这个文档2它提供了一种更好、更简洁的方法来使用参数进行测试。但是,我想不出将模拟对象传递给测试方法的方法。

@TestWith({
"null, mock(B.class),mock(C.class)",
"mock(A.class), null, mock(C.class)",
"mock(A.class), mock(B.class), null"
})
public void test_workflow(final A Aclass,final B Bclass,final C Cclass)
{
assertThat....
}

我收到非法参数异常:

java.lang.IllegalArgumentException:无法将字符串“mock(B.class)”解释为类 B.class 在 com.googlecode.zohhak.internal.coercing.CoercingService.coerceParameter(CoercingService.java:58) 在 com.googlecode.zohhak.internal.coercing.CoercingService.coerceParameters(CoercingService.java:33) 在 com.googlecode.zohhak.internal.Executor.calculateParameters(Executor.java:28) 在 com.googlecode.zohhak.internal.junit.ParametrizedFrameworkMethod.invokeExplosively(ParametrizedFrameworkMethod.java:22)

有谁知道如何将模拟对象作为参数传递给测试方法?这将是一个很大的帮助,我会继续努力解决这个问题。

最佳答案

https://github.com/piotrturski/zohhak/blob/master/Full-Guide.md#basic-usage

Zohhak by default supports:

primitives and their wrappers
nulls
enums
String
BigInteger, BigDecimal (since 1.1.0)

and types assignable from them (eg. Number, CharSequence, Object). Parameters are separated with comma, edge white characters are trimmed (unless apostrophes are used).

所以你需要写一个强制转换方法。
它将读取类名并创建模拟对象。
https://github.com/piotrturski/zohhak/blob/master/Full-Guide.md#registering-coercions

关于java - 将模拟对象作为 JUnit 参数传递给带参数的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171071/

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