【问题标题】:unit test for a method using generics使用泛型对方法进行单元测试
【发布时间】:2016-04-28 12:43:29
【问题描述】:

我从这个论坛获取了以下方法,但我无法理解如何编写 junit 测试。我在论坛中寻找答案,但没有找到任何具体的答案。希望有人知道吗?

这是我的方法:

public String replaceName( Class<? extends Command> cmd) {
 String str = cmd.getSimpleName().replaceAll("Command$", "");
}

对于hamcrest,我正在尝试类似:

@Test
public void testIfBackupCommandIsChildOfCommand() {
  Class<? extends Command> cmd ;

   assertThat( expected, (Matcher) org.hamcrest.Matchers.instanceOf(cmd));
}

我必须初始化 cmd 才能使其正常工作。我不知道该怎么做。如果我初始化为 null,我会得到一个 NPE。

【问题讨论】:

    标签: java generics junit hamcrest


    【解决方案1】:

    这个泛型意味着您将任何扩展 Command 类的类作为参数传递。您必须要么创建一个扩展 Command 类的类,要么使用现有的实现。我不确定在您的情况下 Command 类是什么,是具体类还是抽象类,或者是否存在现有实现,所以如果没有更多信息,我无法提出任何建议。

    正如我所提到的,您也许可以创建自己的类并使用它:

    class MyClass extends Command {
       public MyClass() {}
    
       public void implementedMethod() {}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2021-10-15
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      相关资源
      最近更新 更多