sku*_*lpt 1 java junit intellij-idea
我正在尝试使用 JUnit 进行测试,但我很难理解我做错了什么。我做了一些非常简单的事情:
一个应该能够创造一些东西的类。到目前为止,我只是在测试它获取的对象是否为空。
public class TestedClass {
public void create(Object o) {
if (o == null) {
throw new IllegalArgumentException();
} else {
System.out.println("Not null!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
tester 类,它创建一个新的 TestedClass 对象并尝试创建一些带有 null 的东西。它需要一个 IllegalArgumentException。
import org.junit.Test;
public class Tester {
@Test(expected = IllegalArgumentException.class)
public void createWithNullShouldThrowException() {
TestedClass t = new TestedClass();
t.create(null);
}
}
Run Code Online (Sandbox Code Playgroud)
只是主课。
public class Main {
public static void main(String[] args) {
Tester test = new Tester();
test.createWithNullShouldThrowException();
System.out.println("passed all tests!");
}
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果在整个测试过程中抛出 IllegalArgumentException,它应该正确终止。这是我的程序终止的情况:
Exception in thread "main" java.lang.IllegalArgumentException
at TestedClass.create(TestedClass.java:4)
at Tester.createWithNullShouldThrowException(Tester.java:6)
at Main.main(Main.java:7)
Run Code Online (Sandbox Code Playgroud)
这不应该发生,因为它应该被 Tester 类中的 createWithNullShouldThrowException() 方法捕获,还是我没有正确理解这一点?我知道我可能可以用 try catch 块来做到这一点,但我只想知道在这种情况下出了什么问题。如果有帮助,我正在使用 IntelliJ IDEA 16.1。任何帮助,将不胜感激。
| 归档时间: |
|
| 查看次数: |
1893 次 |
| 最近记录: |