Java junit测试:";无法访问匹配器“;

Java junit测试:";无法访问匹配器“;,java,testing,junit,Java,Testing,Junit,为程序编写测试用例,我正在尝试测试预期的异常 在testStatus方法中,行 expect(IllegalArgumentException.class) 我得到一个“错误:无法访问匹配器”。我不知道为什么,我在网上找不到任何关于它的信息。这是一个学校项目,但它是一个高级课程,所以没有必要含糊其辞。学习语法是我最不关心的。我们不会在这方面接受测试。我们的分数更多地取决于我们的测试质量,而不是我们如何编写测试 是的,注释行也会断开。该行是在代码之前还是之后(我猜是在之前) 编辑:另外,当运行主程

为程序编写测试用例,我正在尝试测试预期的异常

在testStatus方法中,行

expect(IllegalArgumentException.class)

我得到一个“错误:无法访问匹配器”。我不知道为什么,我在网上找不到任何关于它的信息。这是一个学校项目,但它是一个高级课程,所以没有必要含糊其辞。学习语法是我最不关心的。我们不会在这方面接受测试。我们的分数更多地取决于我们的测试质量,而不是我们如何编写测试

是的,注释行也会断开。该行是在代码之前还是之后(我猜是在之前)

编辑:另外,当运行主程序时,它实际上会正确地抛出异常。我只需要让junit认识到这一点

import org.junit.Assert;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.Result;
import org.junit.runner.JUnitCore;
import org.junit.runner.notification.Failure;
import org.junit.rules.ExpectedException;
import org.junit.Rule;


public class TaxCalculatorTest {


@Rule
public ExpectedException thrown = ExpectedException.none();   



@Test
public void testStatus(){

  //thrown.expect(IllegalArgumentException.class);

  TaxCalculator taxes = new TaxCalculator();
  taxes.calculateTax(0, 40000);

  thrown.expect(IllegalArgumentException.class);
}

public static void main(String[] args){
  Result result = JUnitCore.runClasses(TaxCalculatorTest.class);      

}
}

请显示完整的错误消息和堆栈跟踪。如果您通过给定的main方法运行测试,您将看不到任何输出。我很愚蠢。我没有注意到下面的一行写着“org.hamcrest.Matcher的类文件未找到”,我将hamcrest jar文件放在正确的目录中。我想我需要导入它。你需要把它放在类路径上。这取决于您的开发环境。我知道这不是您要问的,但您可以将其作为参数传递给
@Test
注释,如下所示:
@Test(expected=IllegalArgumentException.class)