gpt4 book ai didi

java - 使用mockito调用Service类的嵌套方法时出现NullPointerException

转载 作者:行者123 更新时间:2023-11-30 01:57:21 25 4
gpt4 key购买 nike

我正在为我的服务类编写 JUnit 测试用例。我创建了虚拟数据来理解我的场景。

@Service
MainClass {
@Autowired
C c;
public void someServiceMethod(){
ResultClass someResult = c.getResult(string,string, int, int, List<String>,boolean);
}
}

@Service
public class C {
@Autowired
SomeRepository someRepository;
public ResultClass getResult(string,string, int, int, List<String>,boolean){
ABC returnSomeClassObject = someRepository.getSomeData(String,int,int);
}
}

@Test
MainClassTest {
@MockBean
SomeRepository someRepository;
when(someRepository.getSomeData(anyString(),anyInt(),anyInt())).thenReturn(SomeRepository);

//calling MainClass method
MainClass.someServiceMethod();
}

C 类的 getSomeData() 方法返回 ABC 类对象,该对象为 NULL,然后设置为另一个相同的类类型对象。设置值后,我收到 NULLPointerException 因为 ABC 为 NULL。有人知道我哪里出错了吗?

最佳答案

编写模拟语句时没有返回预期的对象

    @Service
public class C {
@Autowired
SomeRepository someRepository;
public ResultClass getResult(string,string, int, int, List<String>,boolean){
ABC returnSomeClassObject = someRepository.getSomeData(String,int,int);

//Your return type should be ResultClass
// Where your return statement
// What is ABC?
}
}

@Test
MainClassTest {
@MockBean
SomeRepository someRepository;
when(someRepository.getSomeData(anyString(),anyInt(),anyInt())).thenReturn(SomeRepository);
// Why are you returning SomeRepository, This Should return object of ABC

@MockBean
ABC mockResultClass
when(someRepository.getSomeData(anyString(),anyInt(),anyInt())).thenReturn(mockResultClass);

//calling MainClass method
MainClass.someServiceMethod();
}

关于java - 使用mockito调用Service类的嵌套方法时出现NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53947954/

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