使用JUnit4与JMockit进行打桩测试】的更多相关文章

1. 何为Mock 项目中各个模块,各个类之间会有互相依赖的关系,在单元测试中,我们只关心被测试的单元,对于其依赖的单元并不关心(会有另外针对该单元的测试). 比如,逻辑层A类依赖了数据访问层B类的取数方法,然后进行逻辑处理.在对A的单元测试中,我们关注的是在B返回不同的查询结果的时候,A是怎么处理的,而不是B到底是怎么取的数,如何封装成一个模型等等. 因此,要屏蔽掉这些外部依赖,而Mock让我们有了一套仿真的环境. 目前业界有几种Mock,这里选用最全面的JMockit进行总结. 2. JMo…
pom依赖: <!-- https://mvnrepository.com/artifact/org.jmockit/jmockit --> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.48</version> <scope>test</scope> <…
一,前言 首先理解: 1,测试用例不是证明你是对的,而是证明你没有错 2,测试用例用来达到想要的预期结果,但对于逻辑错误无能为力 二,两种测试失败:error And Failure 1,Failure 此种情况是没有达到预期的结果,预期和结构不匹配 package com.duo.util; import static org.junit.Assert.*; import org.junit.Test; public class ErrorAndFailureTest { @Test publ…
“时间测试”是指,一个单元测试运行时间是否超过指定的毫秒数,测试将终止并标记为失败. import org.junit.*; /** * JUnit TimeOut Test * @author yiibai * */ public class JunitTest4 { @Test(timeout = 1000) public void infinity() { while (true); } } 在上面的例子中,infinity() 方法将不会返回,因此JUnit引擎将其标记为失败,并抛出一个…
这种“忽略”是指方法还没有准备好进行测试,JUnit引擎会绕过(忽略)这个方法. import org.junit.*; /** * JUnit Ignore Test * @author yiibai * */ public class JunitTest3 { @Ignore("Not Ready to Run") @Test public void divisionWithException() { System.out.println("Method is not r…
Junit测试用例不是用来证明你是对的,而是用来证明你没有错 1.功能   -在项目未在浏览器运行之前对获得的结果和预期的结果进行比较调试,减少BUG和发布时的修复工作 2.测试类和代码类应分开存放.在src目录下new一个Test资源目录 3.JUnit Test Case   可以对类中的方法生成测试方法 4.//方法中第一个参数为预测获得的结果,第二个为实际运行结果     将预测结果和运行实际值进行比较     assertEquals(6, new Arithmetic().multi…
Junit4最佳实践 1.把测试文件夹和代码文件夹分离,这两者的代码互不干扰,代码目录和测试目录是并列的关系 2.Java代码 3.创建单元测试代码文件 4.运行测试代码  5.查看测试结果 现在的情况是我的测试代码是全部通过的,所以右边横条是绿色,现在再来看另一种情况: 我第一个“相加“的方法中,本来3+3=6,我的期望值写成了3,导致运行测试代码时,报了一个failure的错误,意思是指预期值跟我写的值不一致导致错误. 再看到这个地方 这是一个“相除”的方法,3/0,系统直接报错error,…
阅读更多 利用JUNIT4,GroboUtils进行多线程测试 多线程编程和测试一直是比较难搞的事情,特别是多线程测试.只用充分的测试,才可以发现多线程编码的潜在BUG.下面就介绍一下我自己在测试多线程并发程序时用的一个比较简单好用的测试工具类库.即JUNIT4和GroboUtils. 废话不多说,把代码贴出来,大家一看就明白了. import java.util.ArrayList; import java.util.HashSet; import java.util.Hashtable; i…
junit4 中的套件可以用来测试一个需要依赖的业务流程,如购买必须依赖与登录成功 代码实现: 测试数据存放 public class BaseTest { protected static HashMap<String ,Object> dataMap=new HashMap<String ,Object>(); } 登录测试,将登录的数据存放在map中 public class LoginTest extends BaseTest { @Test public void log…
Jmockit可以做什么 使用JMockit API来mock被依赖的代码,从而进行隔离测试. 类级别整体mock和部分方法重写 实例级别整体mock和部分mock mock静态方法.私有变量.局部方法 灵活的参数匹配 maven依赖 Jmockit可以和junit和TestNG配合使用.需要注意的是: 如果使用Junit4.5以上,jmockit依赖需要在junit4之前:或者在测试类上添加注解 @RunWith(JMockit.class). 如果是TestNG 6.2+ 或者 JUnit…