有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有抽象方法的JavaGroovy模拟

我有一个名为Parameter的Java对象,我正试图用groovy模拟它。参数是具有1个抽象方法的抽象类。它还有一个名为getName()的非抽象方法。我试图在Groovy中模拟它,如下所示:

 def p1 = [name:{"p1Name"}] as Parameter

但是我得到了一个运行时错误,因为我没有实现抽象方法。如果我试图创建一个mock,为什么我需要实现抽象方法

谢谢, 杰夫


共 (1) 个答案

  1. # 1 楼答案

    通过使用映射进行模拟,您正在创建Parameter类型的实例,因此它必须实现Parameter类的任何抽象方法

    abstract class Parameter {
      abstract String getOtherName() 
      String getName() { return "test" }
    }
    
    def p1 = [name:{"p1Name"}, getOtherName:{""}] as Parameter