我想用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测试来获取该变量并验证该变量?
1条答案
按热度按时间dw1jzc5e1#
您无法在公寓测试中使用局部变量的值,无论它们出现在哪种方法中。
将计算提取到一个单独的方法中(示例方法更容易测试),然后就可以测试该方法了。不过,测试从另一个静态方法对一个方法的调用还是很困难的。