gpt4 book ai didi

java - 编写测试器类来测试编译后的文件

转载 作者:行者123 更新时间:2023-11-29 04:51:52 25 4
gpt4 key购买 nike

我正在尝试编写一个测试类来测试一个已经编译过的文件。我基本上是想看看旋转 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com