使用@MockBean 或@Autowired 在测试中模拟

Mocking in Tests with @MockBean or @Autowired

我有这个 Junit 测试,我有一个对象,我想模拟 BackendHotelService 对象;我使用了 @MockBean@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);
    }

从未使用过后端酒店服务

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

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

试试下面

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