gpt4 book ai didi

java - 使用 JMockit 为类创建虚拟对象

转载 作者:行者123 更新时间:2023-12-02 05:34:46 25 4
gpt4 key购买 nike

我想使用 JMockit 创建虚拟对象 ( see definition here )。

这些对象需要作为非空构造函数参数,但特定的单元测试不需要。由于构造函数可能会检查参数(例如使用 Objects.requireNonNull),因此虚拟对象不能只是 null

我想使用类似的东西

new ObjectWithUnusedDependency(dummy());

其中 dummy() 创建一个虚拟对象。

使用

public static <T> T dummy() {
return new MockUp<T>() {}.getMockInstance();
}

如果T是一个接口(interface),这可能会起作用,但对于类getMockInstance返回null

如果在这样的虚拟对象上调用方法时测试失败,那就太好了。

有没有办法使用 JMockit 来完成此任务?

最佳答案

使用 JMockit 可以很容易地做到这一点。只需声明所需类型的模拟字段或模拟参数,并将其传递给被测试的代码。例如:

@Test
public void myTest(@Injectable SomeClass dummy)
{
new ObjectWithUnusedDependency(dummy).doSomething();
}

适用于任何引用类型,包括final类、abstract类、接口(interface)、枚举等。

此外,如果您希望测试在虚拟对象上调用任何方法时失败,则需要添加“完整验证”:

@Test
public void myTest(@Injectable SomeClass dummy)
{
new ObjectWithUnusedDependency(dummy).doSomething();

new FullVerifications(dummy) {};
}

关于java - 使用 JMockit 为类创建虚拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104238/

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