Java Junit测试以下代码

Java Junit测试以下代码,java,junit,Java,Junit,我需要编写junit测试。我返回了类和枚举的junit测试。但是这里我需要检查它是否正确,就像测试的每个方面一样,你应该问这个问题:我在这里测试什么 在这种情况下,几乎没有什么值得测试的,因为您将检查日志记录的正确性(除非某些格式的详细日志记录是应用程序的非功能性需求的一部分),而这些日志记录不应该被测试。这种详细的测试方法不仅会极大地增加任何应用程序的开发,而且还会增加维护工作,只会带来很少的好处,相反,它会将重点放在业务逻辑上 但是,如果您仍然希望测试代码,您可以使用其中一个模拟框架(即Mo

我需要编写junit测试。我返回了类和枚举的junit测试。但是这里我需要检查它是否正确,就像测试的每个方面一样,你应该问这个问题:我在这里测试什么

在这种情况下,几乎没有什么值得测试的,因为您将检查日志记录的正确性(除非某些格式的详细日志记录是应用程序的非功能性需求的一部分),而这些日志记录不应该被测试。这种详细的测试方法不仅会极大地增加任何应用程序的开发,而且还会增加维护工作,只会带来很少的好处,相反,它会将重点放在业务逻辑上

但是,如果您仍然希望测试代码,您可以使用其中一个模拟框架(即Mockito)来注入模拟
记录器
,并验证(即通过调用
Mockito.verify(…)
)是否调用了具有预期参数的方法


另外,请注意,在大多数情况下不需要预检查
if(logger.isDebugEnabled())
,因为as
logger.debug
将检查日志记录级别。唯一应该使用它的情况是当创建记录字符串的成本很高时(长语句、多个连接等)

您的问题没有意义。请重新措辞。我需要为以下代码编写Junit测试:代码除了编写日志消息之外什么都不做,这是通常在单元测试中不会测试的。
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));
        }