java - 如何正确使用JUnit的assertThat?

标签 java junit hamcrest

我有一个名为 Calculator 的类,其中包含加、减、除、乘四种基本运算

public class Calculator{

        public int add(int a, int b) {
            return a + b;
        }

        public int subtract(int a, int b) {
            return a - b;
        }

        public double multiply(double a, double b) {
            return a * b;
        }

        public double divide(double a, double b) {
            if (b == 0) {
                throw new ArithmeticException("Division by zero.");
            }
            return a / b;
        }

    }

我正在使用 Maven 项目和我的 pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.usp.icmc</groupId>
    <artifactId>Calculadora</artifactId>
    <version>0.0.1</version>
    <dependencies>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>1.3</version>
        </dependency>
    </dependencies>
</project>

我在 JUnit 中创建了一个测试,如下所示:

public void testSumWithAssertThat() {
        int expectedValue = 2;
        int returnedValue = calculator.add(1, 1);       
        assertThat(returnedValue, is(expectedValue));
    }

我遇到以下异常:

java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package

为什么要抛出异常?这个简单的代码出了什么问题?

最佳答案

确保 hamcrest.jar 位于类路径中包含的 JUnit 库 之前,以解决该问题。

关于java - 如何正确使用JUnit的assertThat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40524250/

相关文章:

java - "safely"如何使用通用模板的多态性?

java.lang.AssertionError : expected:<200> but was:<404> in jersey restful services unit test

java - JUnit 测试方法无法返回值

java - JDK9 自动模块和 "Split Packages"依赖

java - 以编程方式设置启动后的外观和感觉

java - 如何使用处理在单独的线程中读取 OpenGL 像素?

java - 在 opengl 和自己的库中传递 vector (和其他结构)

java - 无法使用 gradle 按类别包含/排除 Junit 测试类

java - 如何返回我明确作为参数传递的类型?

java - 如何断言字符串不为空