public DownloadModelData downloadFiles(
@RequestParam(value = "modelId", required = true) final ModelId modelId,
@RequestParam(value = "type", required = false) final String type,
@RequestParam(value = "osId", required = false) final String osId,
@RequestParam(value = "language", required = false) final String language,
@RequestParam(value = "subType", required = false) final String subType,
@PageableDefault(page = 0, size = 2000) final Pageable pageable) {
if (logger.isDebugEnabled()) {
logger.debug(String.format(" -> pageable: %s", pageable));
}
我需要编写junit测试。我已经为类和枚举返回了junit测试。但在这里我需要检查它是真还是假
答案 0 :(得分:3)
与测试的每个方面一样,您应该问一个问题:我想在这里测试什么?
在这种情况下,几乎没有什么值得测试的,因为您将检查日志记录的正确性(除非某些格式的某些详细日志记录是您的应用程序的非功能性要求的一部分)不应该进行测试。这种详细的测试方法不仅会大大增加开发,而且还会大大增加任何应用程序的维护工作,从而获得非常小的好处,而不是试图专注于业务逻辑。
但是,如果您仍然希望测试您的代码,您可以使用其中一个模拟框架(即Mockito)注入模拟logger
并验证(即通过调用Mockito.verify(...)
)是否使用已调用预期参数。
另外,在旁注中,大多数情况下不需要预检if (logger.isDebugEnabled())
,因为logger.debug
无论如何都会检查日志记录级别。应该使用它的唯一情况是创建记录的字符串是昂贵的(长语句,多个连接等)。