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

标签 java unit-testing junit

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

相关文章:

java - 我如何解析我的日期范围然后检查冲突?

java - 单元测试模拟返回数据有什么意义?

java - 如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试

java - LibGDX:如何在FitViewport的黑条区域中绘制?

java - onResponse 方法中的 Volatile 变量没有改变

java - Eclipse 构建器 : Verify Return Code?

java - 使用mockito填充列表

javascript - Undefined 不是一个对象(评估 'value.phrase.replace' )

android - 运行 gradlew 测试时出现 Robolectric 错误

java - 如何在junit中编写字符串数组输入的测试用例?(junit新手)