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



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

主要类别:

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;然后结果变量必须为。我如何编写JUnit测试来获得该变量并验证该变量?

无论局部变量出现在哪种方法中,都不能在单元测试中使用它们的值。

将计算提取到一个单独的方法中(实例方法更容易测试(,然后可以测试该方法。尽管如此,还是很难测试从另一个静态方法对方法的调用。

最新更新