java - 如何使用注入类进行测试?Junit 返回 NPE
问题描述
我有一个简单的服务,如下所示
@Service
public class MyService {
@Inject SomeClass someClass;
public resp doSomething(){
return someclass.executeSomething();
}
}
这是我的测试:
public class SomeServiceTest {
@Mock
SomeClass someClass;
MyService myService;
@Before
public setUp() {
myService = new MyService();
}
@Test
public void testExecute() {
Resp resp = myService.doSomething();
assertNotNull(resp);
}
}
指向时出现空指针异常someclass.executeSomething(); where someclass is null
。如何模拟注入的类?
解决方案
就像我之前的评论中建议的那样,这样应该可以解决问题。
@RunWith(MockitoJUnitRunner.class)
public class SomeServiceTest {
@Mock
SomeClass someClass;
@InjectMocks
MyService myService;
@Test
public void testExecute() {
Resp resp = myService.doSomething();
assertNotNull(resp);
}
}
推荐阅读
- java - 构建期间的 Maven HTTP 失败
- git - 为什么 Azure Devops Pipelines Docker Build 不能正确地将我的提交版本标记到我的 dotnet 核心程序集中?
- c++ - 嵌套for循环不循环通过第二个数组
- flutter - 颤振究竟是如何渲染小部件的?
- python - 将 25 gigs 文本文件加载到 Mysql(python 脚本或 LOAD DATA)的最佳方法?
- c - VSCode 'Go to definition' 不仅仅适用于大型项目
- c# - 在静态类中配置静态 StreamWriter
- flutter - 如何在 Flutter 中制作弧形底部 appBar?
- html - 仅使用 `direction: rtl` 样式化元素
- javascript - 可以对字符串数组进行编码吗?