关于hamcrest的问题解决
来源:互联网 发布:淘宝策划书模板 编辑:程序博客网 时间:2024/06/15 23:56
之前项目中用到一个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 测试字符串匹配
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;@Beforepublic 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);}@Testpublic void testDivide(){int rel;cal.divide(20, 0);rel= cal.divide(20, 10);TestCase.assertEquals("除法有问题",rel, 2);}@Testpublic void testHamcrest(){//try {Assert.assertThat(50,allOf(greaterThan(20),lessThan(60)));//} catch (Exception e) {// TODO Auto-generated catch block//e.printStackTrace();//}}@Afterpublic 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之后
调整顺序后,再次执行
- 关于hamcrest的问题解决
- 关于junit4中的常用hamcrest的匹配方法
- 使用junit单元测试的java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing问题解决办法
- junit单元测试的java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing问题解决办法
- Junit4--hamcrest的使用
- Hamcrest
- Hamcrest
- Junit4X系列--hamcrest的使用
- 关于问题解决的思考
- 学习junit和hamcrest的使用
- 使用Hamcrest增强JUnit的测试能力
- JUnit4新断言-Hamcrest的常用方法
- 使用hamcrest增强testng的测试能力
- 【软件测试】JUnit、Hamcrest、Eclemma的安装
- JUnit和hamcrest的jar包关系
- 关于linux的时间问题解决
- 关于tomcat乱码的问题解决
- 关于界面绘图的问题解决
- 感谢所有的幸运与不幸 --- 致我的2016
- Ajax全接触(五) 处理跨域方式
- SqlServer获取存储过程的返回值
- 《从零开始学Swift》学习笔记(Day48)——类型检查与转换
- quick cocos2d-x 关于table的拷贝问题
- 关于hamcrest的问题解决
- dataframe 存入MySQL,Python 'timestamp' cannot be converted to a MySQL type
- MySQL事务隔离级别详解
- 关于Android6.0蓝牙Ble搜索的demo和一点心得
- Failed to stop iptables.service: Unit iptables.service not loaded.
- iOS 用自签名证书实现 HTTPS 请求的原理实例讲解
- leetcode-101. Symmetric Tree 解题笔记
- C++函数声明后面加throw()的作用!
- 分享一个文件上传插件