【问题标题】:Null pointer Exception is coming for Initialized object in JUnitJUnit中的初始化对象出现空指针异常
【发布时间】:2021-06-09 06:29:01
【问题描述】:

我有以下类的实现..'EmpAddress'是一个接口&'EmployeeInterfaceFactory'是一个具有静态方法'getAddressImpl'的类,它提供EmpAddress实现的类对象...我有如下JUnit方法我得到空指针异常...在实现此 JUnit 时需要帮助/建议...

***************************************************************************
public class Employee(){

private Address address = new Address();

public String getEmployeeDetails(){
  String details = address.getDetails();
  return details;
}
}
***************************************************************************
public Address address(){

private EmpAddress empAddress = EmployeeInterfaceFactory.getAddressImpl();

public String getDetails(){

String details = empAddress.getEmpDetails();  // Null pointer exception coming here
return details;
}
}
****************************************************
@RunWith(PowerMockRunner.class)
@PrepareForTest({EmployeeInterfaceFactory.class})
public class EmployeeTest(){

Employee emp;
EmpAddress empAddress;

@Before
public void setUp(){
 emp = new Employee();
 empAddress = createMock(EmpAddress.class);
 mockStatic(EmployeeInterfaceFactory.class);
}

@Test
public void getEmployeeDetailsTest(){
  expect(EmployeeInterfaceFactory.getAddressImpl()).andReturn(empAddress);
  expect(empAddress.getEmpDetails()).adnReturn("testing data");

  String result = emp.getEmployeeDetails();
}
}

【问题讨论】:

  • 不,没有 JUnit 实现可用的地方。我无法更改代码。有什么方法可以模拟这些行以使 JUnit 通过?
  • @Balaji211 请发布堆栈跟踪,以便我们可以正确调试。

标签: java mockito powermockito easymock


【解决方案1】:

检查您是否在private EmpAddress empAddress = EmployeeInterfaceFactory.getAddressImpl(); 行获取empAdress,可能您可以将其移至setUp 方法,在getDetails 方法中调用setUp,以便当您尝试访问它时empAdress 不为空在getDetails

在 TestCase 中,您返回的 empAddress 尚未初始化,这会导致空指针 expect(EmployeeInterfaceFactory.getAddressImpl()).andReturn(empAddress);

【讨论】:

  • "EmployeeInterfaceFactory" 位于不同的包/依赖项中。我无法控制。无法更改代码...
  • empAddress=createMock(EmpAddress.class);存在于@Before方法中..还不够..请澄清
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多