`
toolkit1216
  • 浏览: 29033 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

建立公共部分静态类打桩1

阅读更多
静态方法打桩,统一使用Mockit.redefineMethods方法实现

另外,打桩的实现要和原实现类一一对应,所有人共用这些资源,防止滥用

比如,需要对com.icnfg.comapi.Tracer类的实现进行打桩

就需要创建桩类:
com.icnfg.comapi.MyTracer

在使用到Tracer之前,使用
Mockit.redefineMethods Tracer, MyTracer
进行打桩即可

另外,对于公共的操作,可以提取,不能每个测试方法中都放,这个测试代码会很多,比如Tracer初始化,涉及到很多静态方法,可以封装

class TestUtils
{
    public static tracerStub(){
        // 为了让Tracer的静态块能够使用,需要打下面的桩
        MyIOUtils.prop.setProperty "log4j.category.com", "DEBUG,"
        Mockit.redefineMethods(IOUtils, MyIOUtils)
        Mockit.redefineMethods(PropertyConfigurator, MyPropertyConfigurator)
        Mockit.redefineMethods(Configuration, MyConfiguration)
        Mockit.redefineMethods(Tracer, MyTracer)
}
}

这样,在每一个测试类中的@Before方法中,直接调用TestUtils.tracerStub()方法,即可完成打桩,不需要自己再写

另外,静态方法和静态初始块,是非常不好的设计,我们在功能开发时,能够重构的地方,尽量重构,不过要保证对外开放的接口要兼容
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java中的静态变量静态方法静态块与静态类.docx

    Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...

    JS定义静态类

    ### JS定义静态类 在JavaScript中,静态类的概念与传统面向对象编程语言中的类有所区别。JavaScript本身是一种基于原型的动态语言,直到ES6(ECMAScript 2015)引入了类语法,才使得类的概念更加清晰。不过,这里的...

    php中静态类与静态变量用法类.zip

    直接调用类方法量:class::attribute/function,无论是静态/非静态都可以,静态static:声明类成员或方法为 static,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外),静态成员属于类,不...

    c#面向对象静态类、构造方法、静态方法介绍.zip

    在C#编程中,面向对象是核心特性之一,它提供了静态类、构造方法以及静态方法等概念,这些是创建高效、可维护代码的关键元素。让我们深入探讨这些知识点。 首先,静态类是C#中不能被实例化的类,它们只包含静态成员...

    .net中数据表的静态类方法

    针对SQL数据操作,定义数据表为静态类和公共属性,实现通用的增删改查的操作,同时定义了自增字段及键值字段,自动实现更新或添加。十分方便的建立一个数据表的对象,使数据操作变得简单。

    web服务 asp mvc 静态类

    在ASP.NET MVC中,静态类常被用来封装公共的、无状态的方法,提供方便的工具集或者服务。 **Web服务**: Web服务通常基于开放标准,如SOAP(Simple Object Access Protocol)、REST(Representational State ...

    ConsoleTest2 C#基础静态类 实例类.rar

    在C#编程语言中,静态类和实例类是两种不同的类类型,它们在程序设计中扮演着不同的角色。本教程将深入探讨这两种类的概念、特点以及如何在C#项目中应用它们。 首先,我们来理解静态类。在C#中,静态类是一个不能被...

    浅析C#静态类,静态构造函数,静态变量

    C#中的静态类、静态构造函数和静态变量是编程中重要的概念,它们在程序设计中起着关键的作用。 首先,让我们来理解静态类。在C#中,静态类是一种特殊的类,它不能被实例化,只能通过类名直接调用其静态成员。静态类...

    常用的公共类java

    在Java编程语言中,公共类(Public Class)是开发者经常使用的元素,它们是程序的核心组成部分。公共类可以被任何其他类访问,这使得它们成为共享代码、实现接口或继承的基础。下面我们将深入探讨Java公共类及其相关...

    static class 静态类详解1

    1. 静态内部类不能访问外部类的非静态成员变量和成员方法,因为静态内部类不需要外部类的实例就可以访问。 2. 静态内部类不能被实例化,因为静态内部类不需要外部类的实例就可以访问。 3. 静态内部类的成员变量和...

    易语言源码易语言wmp播放器静态类模块源码.rar

    6. **类模块设计**:源码中的静态类模块设计,可能是为了封装WMP控件的使用方法,使程序的其他部分可以方便地调用播放、停止等操作,提高代码的整洁度和可维护性。 通过学习和分析这个源码,开发者不仅可以掌握...

    远程网络教学系统静态类图

    远程网络教学系统静态类图 可作为初学者的参考

    静态内部类

    1. **独立性**:静态内部类与外部类之间没有依赖关系,即使外部类没有被实例化,静态内部类也能被实例化。 2. **访问限制**:静态内部类只能访问外部类的静态成员(包括变量和方法),而不能访问外部类的非静态成员...

    JavaScript面向对象之静态与非静态类

    在JavaScript中,我们可以通过构造函数和原型来创建类,而类的成员可以分为静态成员和非静态成员。 静态类和非静态类的概念主要来源于静态类型的语言,如Java或C#。在JavaScript中,我们没有严格意义上的静态类,但...

    .net core 静态类获取appsettings的方法

    这样,静态类`MySettings`的`Setting`属性就会被填充为`appsettings.json`中`Logging`部分的值,可以在任何地方使用。 4. **使用`IConfigurationSection`的`Bind`方法**: `IConfigurationSection`提供了`Bind`...

    易语言wmp播放器静态类模块

    易语言wmp播放器静态类模块源码,wmp播放器静态类模块,方法_创建,方法_关闭,读_属性_地址,写_属性_地址,读_属性_打开状态,读_属性_播放状态,方法_取控制,方法_取设定,方法_取当前媒体,方法_置当前媒体,...

    C#中的静态成员、静态方法、静态类介绍

    - **没有实例构造函数**:静态类不能有公共构造函数,但可以有静态构造函数用于初始化静态变量或状态。 **2.2 示例** ```csharp static class CompanyInfo { public static string GetCompanyName() { return ...

    基于Hook的动态打桩工具(Linux)

    它允许开发人员对全局函数、静态函数、类成员函数甚至是类的虚成员函数进行打桩,以支持单元测试。使用这样的工具,开发者可以更有效地编写测试用例,确保代码质量,并且对程序的运行有更深入的理解。 总的来说,...

    可能是方法最全Redis静态工具类(RedisUtils.java)

    可能是最全的Redis静态工具类,拿来即用,随时随地RedisUtils.方法名()存取数据,每个方法都有对应的注释,快速上手!

Global site tag (gtag.js) - Google Analytics