如何使用JUnit对Java主类中的变量进行检查和验证?

igsr9ssn  于 2022-11-11  发布在  Java
关注(0)|答案(1)|浏览(139)

我想用JUnit检查main方法中的变量,如何写测试文件?

主类别:

package junit;

public class MyClasss {
    public static void main(String args[]) {
        int x = 20;
        double y = 15.5;
        double result = x + y;
        System.out.print(result);
    }
}

Junit测试

package junit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class JUnitMyClassTest {
    private final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
      private final PrintStream oPrintStream = System.out;

      @Before
      public void setUpStream() {
        System.setOut(new PrintStream(outputStream));
      }

      @After
      public void restoreStream() {
        System.setOut(oPrintStream);
      }

        @Test
        public void myResultTest() {
            junit.MyClasss.main(null);
            assertEquals("MyClass Double Result", "35.5", outputStream.toString());
        }
}

我想检查变量x是否为int,值是否为20,并且result变量必须为double。我如何编写JUnit测试来获取该变量并验证该变量?

dw1jzc5e

dw1jzc5e1#

您无法在公寓测试中使用局部变量的值,无论它们出现在哪种方法中。
将计算提取到一个单独的方法中(示例方法更容易测试),然后就可以测试该方法了。不过,测试从另一个静态方法对一个方法的调用还是很困难的。

相关问题