我正在尝试编写一个测试类来测试一个已经编译过的文件。我基本上是想看看旋转 90 度时的坐标是否正确。我不太确定如何编写测试类。关于如何做到这一点的任何建议?
public static void testRotate90(){
int fails = SUnit.testsFailed();
System.out.println ("Testing Rotate 90...");
CartesianPoint cp = new CartesianPoint();
CartesianPoint cp2 = cp.rotate90();
if (fails == SUnit.testsFailed())
System.out.println(" PASS");
}
最佳答案
您应该使用断言将您期望的结果与实际结果进行比较。测试因无效断言或调用 fail() 方法而失败(例如,如果您希望抛出异常,您可能会在不应到达的行上调用失败)。
您不必担心为测试生成输出,测试框架将记录哪个测试类的断言失败。
假设您的 CartesianPoint 类如下所示:
public class CartesianPoint {
private final long x;
private final long y;
public CartesianPoint(long x, long y) {
this.x = x; this.y = y;
}
public CartesianPoint rotate90() {
// actual logic omitted, hardcoding result
return new CartesianPoint(0, 1);
}
public long getX() {return x;}
public long getY() {return y;}
}
然后,如果您希望创建一个 x = 1 和 y = 0 的点并将其旋转以获得 x = 0 和 y = 1,测试可能如下所示:
public class SomeTest {
public void testRotate90(){
CartesianPoint cp = new CartesianPoint(1,0);
CartesianPoint cp2 = cp.rotate90();
SUnit.assertEquals(0, cp2.getX());
SUnit.assertEquals(1, cp2.getY());
}
}
对于这种情况,您可能希望使用多个不同的输入进行测试,请参阅 this question有关如何使用 JUnit 编写参数化测试的示例。
关于java - 编写测试器类来测试编译后的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161052/