java - 使用 @MockBean 或 @Autowired 模拟测试
问题描述
我有这个 Junit 测试,我有一个要模拟该对象的BackendHotelService
对象;我使用了@MockBean
and @Autowired
,但是在java.lang.NullPointerException
运行测试时我都得到了
@Component
public class FindHotelDataRequestTransformer extends HotelDataRequestTransformer {
public FindHotelDataRequestTransformer(BackendHotelService backendHotelService) {
super (backendHotelService);
}
..
}
和测试:
public class FindHotelDataRequestTransformerTest {
@MockBean
//@Autowired
private BackendHotelService backendHotelService;
private FindHotelDataRequestTransformer transformer;
@Before
public void setUp() {
transformer = new FindHotelDataRequestTransformer( backendHotelService);
}
backendHotelService 从未使用过
解决方案
创建新的 FindHotelDataRequestTransformer 时,是否访问 backendHotelService 的任何字段?
如果是这样,您将需要模拟响应。
试试下面
Mockito.when(backendHotelService.name()).thenReturn("test);
推荐阅读
- odoo - 无法在 Odoo 中创建不平衡的日记帐分录
- android - 如何在 Fragment 中覆盖 dispatchTouchEvent
- java - 如何以多行而不是一长行打印arraylist
- hl7-fhir - Vonk FHIR 服务器捆绑验证问题
- javascript - 将 HTML 表格数据导出到 Excel 不起作用
- javascript - Heroku 显示空白页
- android - Android Firebase 身份验证不接收带有高于 11.8.0 的 SDK 的 SMS
- bash - 如何根据子函数返回值退出父函数?
- protractor - 如何使用 if 语句检查屏幕中可见或不可见的位置文本以检查预期文本
- computer-vision - 查找两个相机位姿集之间的变换矩阵