首页 > 解决方案 > 使用 @MockBean 或 @Autowired 模拟测试

问题描述

我有这个 Junit 测试,我有一个要模拟该对象的BackendHotelService对象;我使用了@MockBeanand @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 从未使用过

标签: javatestingjunitmockingjunit4

解决方案


创建新的 FindHotelDataRequestTransformer 时,是否访问 backendHotelService 的任何字段?

如果是这样,您将需要模拟响应。

试试下面

Mockito.when(backendHotelService.name()).thenReturn("test);


推荐阅读