Mockito测试方法无效

ift*_*wMZ 0 java mockito

我有一个叫做计算的方法

public class Calculator {
  public void calc(int a, int b){ 
    String condition = "first";
   int result = 0;

   if (condition.equals("first") { 
     condition = "no need";
   else { result = a + b;}
Run Code Online (Sandbox Code Playgroud)

之后打印结果,无论如何,我需要进行一个测试,看看条件值是否更改为“不需要”或保持“第一”,我如何使用mockito测试来检查这一点?到目前为止我已经尝试过,但没有成功。一个好的理论答案就很好,不需要代码。

And*_*ner 5

一个好的理论答案就好了

Mockito 不是一个测试框架,它是一个模拟框架。

您无需使用 Mockito 进行测试,只需替换依赖项中的行为,以便可以在特定且难以重现的条件下测试代码的行为。

因此,问题的前提是有缺陷的,不仅仅是因为您没有正确使用 Mockito,还因为您在此代码中没有可以替代行为的依赖项。


但假设您实际上的意思是“我如何使用测试框架来测试它”:您也不能这样做。

测试框架只是运行 Java 程序的 Java 程序。它们并不神奇:它们可以测试的只是返回值、抛出的异常和副作用(例如日志消息、打印的内容、状态的更改)。

这里唯一改变的是局部变量。您无法测试有关这些的任何内容,因为它们在定义它们的方法之外是不可观察的。