我最近为 Thymeleaf 编写了一个自定义方言以及一个自定义处理器来处理一些自定义标签并在某些情况下用不同的标签替换它们,但是我在为处理器编写测试时遇到了问题:
AbstractProcessor
类需要覆盖
protected ProcessorResult doProcess(Arguments arguments, ProcessorMatchingContext processorMatchingContext, Node node)
方法,这是我需要测试的方法。
因为我的处理器涉及从 arguments
参数获取变量,所以我尝试模拟它;但是,Arguments
、ProcessorMatchingContext
和 Node
类都声明为 final,这意味着它们不能被 Mockito 模拟。
我真的不想实例化一个实际的 Arguments
对象,因为它依赖于其他 5 个无法模拟的对象,我最终会编写大量代码来测试我的代码中的一行处理器。
对可能的测试策略有什么想法吗?
最佳答案
我不知道这是否有帮助,但您可以使用 Objenesis 实例化一个实际的(非模拟的)Arguments,而无需所有其他 5 个依赖类。
关于java - 使用 Mockito 测试 Thymeleaf 自定义方言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277899/