我们应该测试getForObject



我正在编写一个简单的休息客户端,我的服务类有一种使用

的方法
RestTemplate.getForObject()

我想练习测试,但我真的不知道我们是否应该测试课程。我也不知道如何测试不做太多事情的方法。我应该写任何单元测试吗?

您可以测试,该请求已发送。例如,您有下一个服务:

@Service
public void QueryService {
    private final RestTemplate restTemplate;
    @Autowired
    public QueryService(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
    public List<Employee> void makeQuery() {
        ResponseEntity<List<Employee>> response = restTemplate.getForObject(
            "http://localhost:8080/employees",
            EmployeeList.class);
        return response.getEmployees();
    }
}

对于方法makeQuery,您可以编写下一个单元测试:

@RunWith(MockitoJUnitRunner.class)
public class QueryServiceTest {
    @Mock
    private RestTemplate restTemplate;
    @InjectMocks
    private QueryService queryService;
    @Test
    public void testMakeQueryRequestHasBeenSent() {
        List<Employee> result = queryService.makeQuery();
        // This string checks that method getForObject has been invoked
        verify(restTemplate).getForObject(anyString(), any(Class.class));
    }
}

将来,如果您将更改makeQuery方法并忘记使用restTemplate发送请求,则此测试将失败。

相关内容

  • 没有找到相关文章

最新更新