Java:验证类是否存在

the*_*Fox 2 java junit class

我以为这是一件小事,但是我似乎找不到与class_existsJava 类似的方法。我正在编写测试以验证是否定义了类名。如何使用jUnit在Java中复制它?

<?php

$this->assertTrue(class_exists('Car'), 'Should have a class called "Car"');
Run Code Online (Sandbox Code Playgroud)

TestCar.java

import org.junit.Assert;

import org.junit.Test;

public class TestCar {

    @Test
    public void testCarExists() {
            try {
                Class.forName("Car");
            } catch(ClassNotFoundException e) {
                Assert.fail("Should create a class called 'Car'.");
            }
     }
}
Run Code Online (Sandbox Code Playgroud)

汽车.java

public class Car {
    // just enough :-)
}
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 5

Java的一个优点是您拥有一个编译器,因此通常这是一个非问题。如果您正确地编译了代码,然后由于某种原因从运行时环境中删除了所需的jar文件,则会得到一个java.lang.ClassNotFoundException,这样就足够了。

如果您想超级安全,可以尝试致电Class.forName

@Test
public void testClassExists {
    try {
        Class.forName("org.mypackage.Car");
    } catch (ClassNotFoundException e) {
        Assert.fail("should have a class called Car");
    }
}
Run Code Online (Sandbox Code Playgroud)