gpt4 book ai didi

java - JMockit:当应该实例化模拟对象时出现空指针错误?

转载 作者:行者123 更新时间:2023-12-01 15:57:46 25 4
gpt4 key购买 nike

我对JMockit的理解是它会用模拟替换模拟对象的所有实例(除非您另有说明)。

因此,我很困惑得到 NPE实例化一个对象后,我试图模拟。

测试的目的不是调查导致 NPE 的对象,但我确实需要模拟它才能执行测试,因为它执行一些数据库操作来验证某些输入。

我的测试代码如下(不是复制意大利面,因为它是工作代码,但仍然应该突出显示问题):

public class ClassToTest{

public execute(){
MyDependency myDep = getDependency();

myDep.doSomething(); //I get a NPE here, implying getDependency returned null
}

protected MyDependency getDependency(){
return new MyDependency("an Arg", "another Arg");
}

}

我的测试方法:

@Test
public void testCreateHorseDogMeetingByCodeDataProviderTruncated()
throws IllegalArgumentException, SQLException,
IllegalCountryLocationCombo, MEPException {

// Arrange
ClassToTest myClass = new ClassToTest();

new NonStrictExpectations() {

MyDependency mockDep;

{
//Set up my expectations, not related to MyDependency
}
};

// Act
myClass.execute();

// Assert
new Verifications() {
{
//some verification stuff
}
};
}

任何人都可以帮我解决此 NPE 问题以便我可以完成测试吗?

最佳答案

原来我不小心实例化了 ClassToTest 的子类,它覆盖了 getDependency 的实现并导致出现 null 值。一定是自动完成的事情。

关于java - JMockit:当应该实例化模拟对象时出现空指针错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759136/

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