下载hamcrest-all-1.3.jar导入到工程中,编写下面的方法进行测试:
package com.sunft.junit4.test;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import org.junit.Test;
import com.sunft.junit4.T;
public class TTest {
@Test
public void testAdd() {
int z = new T().add(5, 3);
//这里使用的是hamcrest的匹配模式,is等同于Matcers.is
assertThat(z, is(8));
}
}
运行,报下面的错误:
java.lang.SecurityException: class"org.hamcrest.Matchers"'s signer information does not match signerinformation of other classes in the same package
atjava.lang.ClassLoader.checkCerts(ClassLoader.java:898)
atjava.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
atjava.lang.ClassLoader.defineClass(ClassLoader.java:761)
atjava.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
atjava.net.URLClassLoader.defineClass(URLClassLoader.java:467)
atjava.net.URLClassLoader.access$100(URLClassLoader.java:73)
atjava.n

本文介绍了在使用Junit和hamcrest进行单元测试时遇到的`SecurityException`问题。错误源于不同包的签名信息不匹配。解决方法是删除IDE自带的JUnit库,改为外部引入独立的junit-4.12.jar,确保所有库在同一ClassLoader下。通过此方法,测试得以正常执行。
最低0.47元/天 解锁文章
6503

被折叠的 条评论
为什么被折叠?



