如何为不同的JUnit测试集设置多个设置?

kernel0707:

我刚开始学习JUnit,最近遇到了以下问题。

看看下面的课

class MyClass {
  String a;

  public MyClass(String a) {
    this.a=a;

  String doSomething(String a) {
    if( a.isEmpty() )
      return "isEmpty";
    else
      return"isNotEmpty";
}

我想针对两种情况测试上述方法。如果我继续编写测试用例的一般结构,它将看起来像这样:

class MyClassTest {

  MyClass myClass;

  @BeforeEach
  void setUp() {
    myClass=new MyClass("sampleString");
  }

  @Test
  void doSomethingTest() {
    Assertions.equal("isNotEmpty", myClass.doSomething());
  }
}

但是,为了测试空字符串条件,我将需要另一种设置方法,而不是"sampleString"传递空字符串。

以下是我可以想到的方法以及每个问题:

  • 完全不使用setUp,而是在单独的测试方法中初始化类。但是,如果说有10个测试用例;其中5个需要空字符串并休息,"sampleString"然后这没有意义。同样,我们可以为该重复代码使用一个单独的方法,并在每个测试用例中单独调用它,但是这样就达不到使用steup方法的目的。可以说我想使用两种不同的设置方法,有没有办法?
  • 进行参数设置。我不知道这是否可行。如果是,请为此共享一些有用的链接。
  • 使用TestFactory。我尝试阅读有关此内容的信息,但找不到此特定情况的示例。如果有,请分享。

为了说明的目的,这个例子保持简单。

johanneslink:

在具有注释的内部类中,将具有相同设置的测试分组@Nested每个嵌套的测试类可以在本地@BeforeEach方法中有自己的设置

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章