JUnit @Test 预期的注释不起作用

JUnit @Test expected annotation not working(JUnit @Test 预期的注释不起作用)
本文介绍了JUnit @Test 预期的注释不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有以下测试:

@Test(expected = IllegalStateException.class)
public void testKey() {
    int key = 1;
    this.finder(key);
}

但是 JUnit 报告说,测试失败,尽管它抛出了 - 正如预期的那样 - IllegalStateException.

But JUnit reports, that the test fails, although it throws — as expected — an IllegalStateException.

我必须配置其他东西才能运行吗?

Do I have to configure something else to make this run?

我现在运行测试

@RunWith(Suite.class)
@SuiteClasses(Test.class)
public class TestSuite {

}

像 这个问题,但仍然没有得到想要的结果.

like in this question, but am still not getting the desired result.

当我删除 test 前缀时,我仍然收到错误消息.

And when I remove the test prefix I'm still getting an error.

我得说我使用 Eclipse 运行这些测试,但它被配置为使用 JUnit 4 Runner.

I gotta say that I run these tests with Eclipse, but it's configured to use the JUnit 4 Runner.

推荐答案

问题是,嵌套测试的类是 TestCase 的扩展.由于这是 JUnit 3 样式,因此注释不起作用.

The problem was, that the class in which the test was nested was an extension of TestCase. Since this is JUnit 3 style, the annotation didn't work.

现在我的测试类是一个独立的类.

Now my test class is a class on its own.

这篇关于JUnit @Test 预期的注释不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

quot;Char cannot be dereferencedquot; error(“Char 不能被取消引用错误)
Java Switch Statement - Is quot;orquot;/quot;andquot; possible?(Java Switch 语句 - 是“或/“和可能的?)
Java Replace Character At Specific Position Of String?(Java替换字符串特定位置的字符?)
What is the type of a ternary expression with int and char operands?(具有 int 和 char 操作数的三元表达式的类型是什么?)
Read a text file and store every single character occurrence(读取文本文件并存储出现的每个字符)
Why do I need to explicitly cast char primitives on byte and short?(为什么我需要在 byte 和 short 上显式转换 char 原语?)