Java 用Mockito测试Thymeleaf自定义方言

Java 用Mockito测试Thymeleaf自定义方言,java,unit-testing,mockito,thymeleaf,Java,Unit Testing,Mockito,Thymeleaf,我最近为Thymeleaf编写了一个自定义方言以及一个自定义处理器,以处理一些自定义标记,并在某些情况下用不同的标记替换它们,但我在编写处理器测试时遇到了问题: AbstractProcessor类需要重写 protected ProcessorResult doProcess(Arguments arguments, ProcessorMatchingContext processorMatchingContext, Node node) 方法,这是我需要测试的方法 因为我的处理器涉及从参数

我最近为Thymeleaf编写了一个自定义方言以及一个自定义处理器,以处理一些自定义标记,并在某些情况下用不同的标记替换它们,但我在编写处理器测试时遇到了问题:

AbstractProcessor
类需要重写

protected ProcessorResult doProcess(Arguments arguments, ProcessorMatchingContext processorMatchingContext, Node node)
方法,这是我需要测试的方法

因为我的处理器涉及从
参数
获取变量,所以我尝试模拟它;但是,
参数
处理器上下文
节点
类都声明为final,这意味着它们不能被Mockito模拟

我真的不想实例化一个实际的
Arguments
对象,因为它依赖于其他5个无法模拟的对象,我最终会编写大量代码来测试处理器中的一行


关于可能的测试策略有什么想法吗?

我不知道这是否有用,但是您可以使用
mockito.when().thenReturn()


如果您的参数正在执行任何类型的调用,您需要模拟这些调用,然后您可以轻松测试您的方法

PowerMock可以模拟最终类:,以及静态方法等。我知道,但这是一个相当大的项目,我不想仅针对这种情况介绍PowerMock