对私有静态方法进行单测

对私有静态方法进行单测

1.被单测的类:

/**
 * Created by 58 on 2016-8-21.
 */
public class Student {

    private static String reading(String bookName) {
       return "student read " + bookName;
    }
}

2.使用junit方式

    @Test
    public void readingTest() {

        String expected = "student read ";
        String input = "Thinking in java";

        try {
            Method targetMethod = Student.class.getDeclaredMethod("reading", String.class);
            targetMethod.setAccessible(true);
            Object actual = targetMethod.invoke(Student.class, input);
            assertEquals(expected + input, actual);
        }catch (Exception e) {
            fail("单测异常");
        }
    }
时间: 2024-10-29 12:15:44

对私有静态方法进行单测的相关文章

做更好的单元测试:关于单测你必须知道的技巧与原则

做更好的单元测试:关于单测你必须知道的技巧与原则 最近因工作需要不得不对单元测试中的Mockito2和Powermock框架的一些新特性进行研究:比如Mockito2和Powermock可以伪造静态方法.final类甚至是构造函数的调用,但是研究一段后发现,这些功能其实在小编本来就很熟悉的Jmockit框架中就能实现,而且不用像mockito一样需要特殊的语法和额外的样板代码,看似掌握了一些所谓"高大上"的用法,实际对工作来说没有任何收益.因此今天这篇文章不会讲什么单测框架的高级特性,

Jenkins+maven+git+sonar 系统持续集成&代码单测管理

Jenkins+maven+git+sonar 系统持续集成&代码单测管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 1.下载最新的版本(一个 war 文件).Jenkins官方网址: http://Jenkins-ci.org/ 2.运行 java -jar jenkins.war(jenkins默认使用的是内嵌的jetty服务,用户也可以布置到其它容器中.)

私有静态方法private static method-值得用吗?

用Resharper的同学都知道,如果你写了一个私有函数,这个函数没有访问类里面的其他参数和方法,那么它建议你标记这个方法为私有静态方法,提示是这样的: 值得这样做吗?看看微软的建议: After you mark the methods as static, the compiler will emit non-virtual call sites to these members. Emitting non-virtual call sites will prevent a check at

编写高质量代码改善C#程序的157个建议——建议105:使用私有构造函数强化单例

建议105:使用私有构造函数强化单例 单例指一个类型只生成一个实例对象.单例的一个简单实现如下所示: static void Main(string[] args) { Singleton.Instance.SampleMethod(); } public sealed class Singleton { static Singleton instance = null; public static Singleton Instance { get { return instance==null

H2数据库做单测数据库时踩到的坑

H2数据库用来做单测数据库,可以自定义初始化数据,不用担心数据库内容更改造成单测跑不过问题,不过H2数据库跟实际使用的Mysql还是有一定区别. 1. H2数据库不支持Mysql的批量更新功能,支持批量插入 --批量更新(H2不支持) <update id="increaseBatch" parameterType="java.util.List"> <foreach collection="list" item="i

【原创】单测代码生成工具Evosuite试用

工具简介 Evosuite是国外大学机构主导开发的一款开源的Java单测代码生成工具,在数次SBST Unit Testing Tool Competition中评测获得最高分.官网地址:http://www.evosuite.org/. Evosuite的主要特性(翻译自官网): 1.对于指定类,生成Junit4类型的单测代码. 2.根据不同覆盖指标调整生成的用例,例如 行覆盖,分支覆盖,输出覆盖等. 3.单测用例最小化,只有对覆盖率有贡献的单测用例才会被保留. 4.生成的单测用例中包含Jun

面对对象之私有属性,以及单、双下划线 | Pythoon

# 在很多程序中会遇到__name,_name的标识符,在类中,如果属性带有双 # 下划线,表示私有属性,通俗的讲,就是不能在类命名空间外被直接调用,但是 # 可以通过方法来调用. # 其实这种表述并不明确,为什么不能被外部直接调用? # 因为,在类被定义的时候,带有双下滑线的属性,它的名字会自动发生改变: # 样式:_Classname__name # 所以,无法直接通过obj.__name访问到值;# 作用:防止子类创建的对象与基类创建的对象出现命名空间冲突的问题; # 单下划线,其实这种标

spring web 业务系统单测使用Jmockit 进行夸层mock

spring业务系统一般使用单例. 多层调用. 例如 A调用B,B调用C. 要测试A的方法,需要夸多层mock C的方法. 使用jmockit的NonStrictExpectations @Service public class A { @Autowired B b; public void method() { b.method(); } } @Service public class B { @Autowired IC c; public void method() { System.ou

【原创】Maven cobertura整合多个子项目下的单测覆盖率报告

今天在调试一个UT job的时候发现找不到cobertural报告文件,后来发现在Maven的自项目里找到了对应的代码覆盖率报告,但都是是分散在每个子项目下面的,看起来很不方便.就在想是不是可以把这些报告都汇集到一起呢?结果还真是被我在stackoverflow里找到了.下面是原帖内容,我就一并粘过来吧: The plugin has been updated since this question was asked (and last answered) to now enable aggr