当前位置: 首页 > 面试题库 >

在单元测试中验证私有方法调用的顺序

阙阳夏
2023-03-14
问题内容

我有以下课程:

class MyClass {

  public void doIt() {
     methodOne();
     methodTwo();
     methodThree();
  }

  private void methodOne() {
     // ...
  }

  // rest of methods similar...

}

我的意图是验证当我调用doIt()时,将按该顺序调用metodOne(),methodTwo()和methodThree()方法。

我正在使用模拟嘲笑。有谁知道我如何测试这种情况?


问题答案:

不想成为这个人,但是:别测试这个。测试输出,副作用,结果-而不是执行。

如果您确实想确保顺序正确,请将这些方法提取到单独的类中并进行模拟。



 类似资料:
  • 我正在使用Mockito/PowerMockito用java编写单元测试,但是在我正在进行的测试中,我无法摆脱这个未完成的stubbing异常。 我试图测试的方法是私有的,所以我使用WhiteBoxImpl来调用该方法。在我调用的方法内部,可能会调用测试类中的另一个私有方法(称为pm2)。我想验证pm2从未被调用,所以我为测试中的类做了一个间谍,并验证pm2从未()被调用。 到目前为止,这个测试总

  • 我是单元测试的新手,最近尝试了JUnit测试和Mockito。 我很困惑我该如何测试公共功能。

  • 我正在为我的一个应用程序编写单元测试,作为一个很好的实践,我试图使我的类中的所有方法尽可能私有,所以我最终可能会使用大部分私有方法的类,很少使用公共方法,有时还会调用一些静态方法(我的其他类或一些文本,等等) 我想知道如何测试我试图只依赖Mockito和JUnit的所有类,因为Robolectric和Powermockito似乎扩展了单元测试中应该做什么的边界。我应该忽略所有私有和静态方法,以及偶

  • 我正在为我的程序创建一个单元测试。我有一个void方法,它接受五个参数,然后将这些参数转换成一个闭包,并将其传递给另一个服务,然后将其转换成电子邮件并发送。我唯一关心的是这封邮件的正文,它存储在传递给这个函数的一个参数中。有没有可能在不改变我的程序设计的情况下验证这个论点? 编辑:作为对下面答案的回应,我在测试中插入了一个spock样式的模拟,但我认为我的语义不对,因为value存储的是NULL。

  • 问题内容: 有没有一种方法可以验证在Mockito中是否曾经调用过a? 问题答案: 帮助您做到这一点。

  • 我想知道是否有一种方法来验证和调用一个模拟,该模拟是为一个私有静态方法创建的,该私有静态方法是从一个被测试的公共静态方法调用的。 下面是我正在测试的公共静态方法 我已经使用powermokito对私有静态方法进行了如下嘲弄: