JMockit Mockups API
来源:互联网 发布:多个excel文件数据汇总 编辑:程序博客网 时间:2024/04/30 04:40
原文: http://jmockit.org/tutorial/Faking.html#mocks
该API针对一个类的部分方法或构造函数mock场景使用,特别是在与外部交互的依赖,如邮件或调用外部服务的类
mock-up class
继承mockit.MockUp的类,泛型T就是要被mock的类,一般以静态嵌套类,内部类或匿名类方式在测试类中声明
嵌套类
A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class that is not a nested class.
参考 http://www.cnblogs.com/aigongsi/archive/2012/04/24/2467183.html
匿名类
Anonymous classes enable you to declare and instantiate a class at the same time.
参考 http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
mock method
使用@Mock注解与需要mock的方法上,且该方法名必须在原类中存在
构造函数使用$init
标识
若方法不存在或参数不正确将抛出异常IllegalArgumentException
非public方法能否mock
一样mock:methods with private, protected or “package-private” accessibility, static methods, final methods, and native methods.
在定义mockup类方法时候可以不带修饰符,改mock应该只关注方法标识符,不关注修饰符,这个可以待验证
例子
public final class MockLoginContext extends MockUp<LoginContext>{ @Mock public void $init(String name, CallbackHandler callback) { assertEquals("test", name); assertNotNull(callback); } @Mock public void login() {} @Mock public Subject getSubject() { return null; }}
当要fake某个类只在单个测试用例中使用时,推荐使用匿名类
@Testpublic void applyingAnAnonymousMockup() throws Exception{ new MockUp<LoginContext>() { @Mock void $init(String name) { /* do nothing */ } @Mock void login() {} }); new LoginContext("test").login();}
- JMockit Mockups API
- Jmockit
- jmockit
- jmockit
- JMockit
- jmockit
- JMockit
- Mockups~!
- Mockups
- Jmockit实用技巧
- Jmockit入门
- jmockit junit
- Jmockit使用指南
- jmockit配置
- Jmockit使用指南
- JMockit概述
- Jmockit使用指南
- jmockit测试
- 程序员必知之浮点数运算原理详解
- 神奇的Android Studio Template
- 第十四章 上机练习2......
- 【Medium】238. Product of Array Except Self
- Android layout_weight属性的工作原理
- JMockit Mockups API
- web安全 CSRF漏洞
- 项目应用:自定义异常处理
- Git的撤消操作 - 重置, 签出 和 撤消
- Android中webview与js交互
- app上架被拒的原因总结(转)
- Codeforces Round #371 (Div. 2)C. Sonya and Queries
- 自定义view的LayoutParam gravity layout_gravity
- java成员变量和局部变量