关于hamcrest的问题解决
2016-12-20 16:00
197 查看
之前项目中用到一个Hamcrest ,为了扩展junit的测试功能,使用了该包
http://hamcrest.org/JavaHamcrest/
此包 功能还是比较多的。
总结如下"
1)与 assertThat 配合使用
2)instanceOf, isCompatibleType --测试类型的
3)notNullValue,nullValue --测试null值
4)sameInstance --测试对象实例
5)Beans ->hasProperty -- 测试JaveBean属性
6)可以测集合类
7)可以测数字
closeTo- 测浮点数接近给定值
greaterThan,lessThan,
8)可以测文本
containsString, startsWith, endsWith 测试字符串匹配
在写的过程中遇到一个问题,JUnit总是run不过去,后来几经努力,发现原来是 引用顺序的问题
java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
Junit的引用必须放在hamcrest.jar之后
调整顺序后,再次执行
http://hamcrest.org/JavaHamcrest/
此包 功能还是比较多的。
总结如下"
1)与 assertThat 配合使用
2)instanceOf, isCompatibleType --测试类型的
3)notNullValue,nullValue --测试null值
4)sameInstance --测试对象实例
5)Beans ->hasProperty -- 测试JaveBean属性
6)可以测集合类
7)可以测数字
closeTo- 测浮点数接近给定值
greaterThan,lessThan,
8)可以测文本
containsString, startsWith, endsWith 测试字符串匹配
package test.junitdemo.util; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import static org.hamcrest.Matchers.*; import junit.framework.TestCase;; public class TestCalcuate { Calcuate cal; @Before public void setUp(){ cal = new Calcuate(); } @Test(timeout = 30) public void testAdd(){ // try { // Thread.sleep(500); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } int rel = cal.add(20, 10); TestCase.assertEquals("加法有问题",rel, 30); } @Test(timeout = 30) public void testMinus(){ int rel = cal.minus(20, 10); TestCase.assertEquals("减法法有问题",rel, 10); } @Test(timeout = 30) public void testMul(){ int rel = cal.mul(20, 10); TestCase.assertEquals("乘法法有问题",rel, 200); } @Test public void testDivide(){ int rel; cal.divide(20, 0); rel= cal.divide(20, 10); TestCase.assertEquals("除法有问题",rel, 2); } @Test public void testHamcrest(){ //try { Assert.assertThat(50,allOf(greaterThan(20),lessThan(60))); //} catch (Exception e) { // TODO Auto-generated catch block // e.printStackTrace(); //} } @After public void tearDown(){ cal = null; } }
在写的过程中遇到一个问题,JUnit总是run不过去,后来几经努力,发现原来是 引用顺序的问题
java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
Junit的引用必须放在hamcrest.jar之后
调整顺序后,再次执行
相关文章推荐
- 关于html编辑器的回车换行问题解决方案
- SOS!!!关于游戏汉化项目中遇到一些不能解决的问题。。。。。
- 解决控件遮挡问题:关于有窗口元素和无窗口元素
- 关于数据动态绑定问题的解决方法
- 关于 clock_gettime() 的一个问题以及解决方法
- 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)
- 关于DateTime在Pocket PC客户端不能正确存入数据库的问题及解决方法
- 关于Eclipse RCP的两个小问题和解决方法
- [导入]关于ASP.NET返回文件的MIME的未解决问题
- PB中关于动态工资项目问题的解决办法
- 如果我是国王:关于解决 Java 编程语言线程问题的建议
- DataGuard - 一个关于Physical Standby中recover问题的解决方法
- DataGuard - 一个关于Physical Standby中recover问题的解决方法
- 关于在struts 框架中使用Filter过滤器解决汉字编码问题
- 关于JDK1.2的JDBC中文问题的解决
- 关于TreeView对添加海量节点的响应(续)-问题的完美解决
- 关于解决WebSphere服务不能启动问题的几点经验总结
- 关于堆溢出(Stack overflow)问题的解决
- 关于如何解决C++ Builder中DBLookupComboBox不能输入的问题:
- 关于tomcat服务器优化,常遇到的一些简单问题的解决方法 (z)