![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JMockit单元测试
weixin_43307577
这个作者很懒,什么都没留下…
展开
-
(一)JMockit实践练习-实战篇
01 需要单元测试的类,源代码:import java.util.Locale;//一个简单的类,能用不同语言打招呼public class HelloJMockit { //向JMockit打招呼 public String sayHello(){ Locale locale = Locale.getDefault(); if(loca...转载 2019-03-25 10:53:52 · 529 阅读 · 1 评论 -
(七)Mock方法中调用老方法--实战篇
通过前面对MockUp介绍 ,使用,我们发现MockUp确实很强大。使用@Mock方法太直接了。可是有时候 ,你只希望@Mock的方法当入参数满足特定条件下才走Mock逻辑,其它条件走老的逻辑。可以吗?当然可以!看下面的例子:import mockit.Invocation;import mockit.Mock;import mockit.MockUp;import org.junit...转载 2019-03-26 15:04:19 · 3046 阅读 · 0 评论 -
(六)Mock泛型(类型变量)
在JMockit基础知识中,我们学过可以用@Capturing用于对某个类或接口未来的实例进行Mock。这里也可以利用MockUp的泛型(类型变量)Mock功能,一样可以达到某个类或接口未来的实例进行Mock的效果。只不过,我们可以享受在MockUp中手工写Mock方法更直接的Mock方式。以如何Mock接口中的AnOrdinaryInterface为例:第一种方法:Mock泛型im...转载 2019-03-26 14:44:12 · 4757 阅读 · 0 评论 -
(五)Mock一类多实例3种--实战篇
@Mocked太狠了,把类的所有的实例都Mock了。有时候我们希望一个类不同的实例有不同的Mock逻辑,怎么呢?下面列举3种方法。还是以如何Mock类中的提到的AnOrdinaryClass为例。import mockit.Expectations;import mockit.Injectable;import mockit.Mocked;import org.junit.Assert;...转载 2019-03-26 13:35:10 · 2396 阅读 · 0 评论 -
(四)使用Injection和MockUp来mock接口--实战篇
在讲述如何Mock接口前,我们给出一个普通接口的代码。//一个普通的接口public interface AnOrdinaryInterface { // 方法1 public int method1(); // 方法2 public int method2();}如下给出2种Mock接口的方法:第一种方法:用Expectations 来Mock...转载 2019-03-26 10:37:46 · 2638 阅读 · 0 评论 -
(三)Expectations来Mock实例--实战篇
在Mock类的章节中,我们知道了如何用Expectations来Mock类。Mock实例的用法基本一样。只需要把Expectations的构造函数参数换成实例即可。用Expectations来Mock类与用Expectations来Mock实例的唯一不同就在于,前者影响类的所有实例,而后者只影响某一个实例。//mock实例public class InstanceMockingByExpec...转载 2019-03-26 09:35:26 · 2391 阅读 · 0 评论 -
(二)普通类的Mock--实战篇
再讲述如何Mock类之前,我们先给出一个普通的类,这个类有static,final,native,private方法。以及一个非static/final/native/private的普通public 方法。//一个普通类 public class AnOrdinaryClass { // 静态方法 public static int staticMethod() { ...转载 2019-03-25 17:40:43 · 2268 阅读 · 0 评论 -
(八)JMockit的API:Verifications--基础篇
Verifications是用于做验证。验证Mock对象(即@Moked/@Injectable@Capturing修饰的或传入Expectation构造函数的对象)有没有调用过某方法,调用了多少次。与Exceptations的写法相似。如下编码格式:new Verifications() { // 这是一个Verifications匿名内部类 { ...转载 2019-03-25 16:52:56 · 2959 阅读 · 0 评论 -
(七)JMockit 的MockUp+@Mock--基础篇
一种常见的mock方式:MockUp + @Mockimport mockit.Mock;import mockit.MockUp;import org.junit.Assert;import org.junit.Test;import java.util.Calendar;import java.util.Locale;//(Mockup + @Mock) 的mock方式pub...转载 2019-03-25 16:44:55 · 9318 阅读 · 1 评论 -
(六)JMockit的API:Expectations--基础篇
Expectations的作用主要是:用于录制,即录制类、对象的调用,返回值是什么。录制脚本规范new Expectations() { // 这是一个Expectations匿名内部类 { /* * 这是这个内部类的初始化代码块,我们在这里写录制脚本,脚本的格式要遵循下面的约定 * 方法调用(可是类的静态方法...转载 2019-03-25 16:27:15 · 10281 阅读 · 1 评论 -
(五)JMockit的API:@Capturing--基础篇
@Capturing主要用于子类/实现类的Mock@Capturing平时较少用到,但某些场景下,还非用它不可。举个例子:通常我们的系统中,都有权限校验。我们通常用AOP来做权限校验,对不?可是AOP生成的类是哪个,连类名都不知道,还怎么Mock? AOP生成的类是动态生成的。可是我们在单元测试时,不希望程序卡在权限校验上(除非是为了测试权限的测试程序)。这种情况下怎么办?用@Captur...转载 2019-03-25 15:53:45 · 2501 阅读 · 0 评论 -
(四)JMockit 的API:@Injectable 与 @Mocked的不同--基础篇
@Injectable 与 @Mocked的不同import mockit.Injectable;import mockit.Mocked;import org.junit.Assert;import org.junit.Test;import java.util.Locale;//@Mocked 与@Injectable的不同public class MockedAndIn...转载 2019-03-25 15:43:47 · 9310 阅读 · 2 评论 -
(三)JMockit API:@Mocked -基础篇
@Mocked可以修饰一个类,接口等。当@Mocked修饰一个类import mockit.Mocked;import org.junit.Assert;import org.junit.Test;import java.util.Locale;**//@Mocked 注释用途-01**public class MockedClassTest { //加上了JMock...转载 2019-03-25 11:49:42 · 6304 阅读 · 2 评论 -
(一)Jmockit单元测试-基础篇
一.Jmockit 的简介:(https://code.google.com/p/jmockit/) JMockit 是用以帮助开发人员编写测试程序的一组工具和API,它完全基于 Java 5 SE 的 java.lang.instrument 包开发,内部使用 ASM 库来修改Java的Bytecode。正是由于基于instrument,可以修改字节码。所以这也是它强大的原因。Jmocki...转载 2019-03-25 11:14:16 · 773 阅读 · 0 评论 -
(二)Jmockit 程序结构-基础篇
通过一个例子来看,JMockit的程序结构import mockit.Expectations;import mockit.Mocked;import mockit.Verifications;import org.junit.Assert;import org.junit.Test;//JMockit 的程序结构public class ProgramConstructure...转载 2019-03-25 11:13:16 · 395 阅读 · 0 评论 -
(八)同一方法调用返回时序结果--实战篇
有时候,我们需要对同一方法调用时,返回结果为一个时序结果:即同一个方法的调用,返回值不同。比如,应用程序中有通过tcp/http连结外部网络操作,写单元测试时,不希望应用程序真正连结外部网络(因为可能会连结失败),因此需要对外部网络的tcp/http数据流返回数据进行mock。下面直接用代码,来描述如何mock.1. Mock:一个类的所有实例// 一个类所有实例的某个方法,返回时序结果。...转载 2019-03-26 15:44:06 · 474 阅读 · 0 评论