Junit中对私有方法测试

在Junit中对私有方法进行测试有两种方法:

一、改变私有方法的访问权限(此方法并不推荐)

二、使用反射机制(推荐)

例如:Calculator类中有一个  private int add2(int a,int b)

{

return a+b;

}

那么在我们的测试类的测试方法中:

@Test

public void add2()

{

Calculator c=new Calculator();

Class<Calculator> cal=Calculator.class;

try {

Method method=cal.getDeclaredMethod("add2", new Class[]{int.class,int.class});

method.setAccessible(true);

Object obj=method.invoke(c, new Object[]{1,2});

Assert.assertEquals(3, obj);

} catch (Exception e) {

Assert.fail("-----");

}

}

时间: 2024-08-06 06:15:23

Junit中对私有方法测试的相关文章

junit中的assert方法总结

junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类.1.assertTrue/False([String message,]boolean condition);    判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名. 2.fail([String message,]);    失败,可以有消息,也可以没有消息. 3.assertEquals([String message,]Object expected,Ob

PHP通过反射方法调用执行类中的私有方法

PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 下面我们演示一下如何通过反射,来调用执行一个类中的私有方法: <?php //MyClass这个类中包含了一个名为myFun的私有方法class MyClass {        private $tmp = 'hello';        private function myFun()    {        echo $this->tmp . ' ' . 'world!';    }} //通过类

ruby中的私有方法和保护方法

ruby中的私有方法是指方法只能被隐含调用,不能被显示调用.而当没有显示接收者的时候,会把self当成接收者.因此,只能在自身中调用私有方法,这也是私有方法的调用规则. ruby的私有方法机制目的是:使得你很容易将方法分为两种,外部世界可以访问的方法和外部世界不可以访问的方法. 如下: 1 class A 2 def a 3 self.method 4 end 5 def method 6 p "hello world" 7 end 8 private :method 9 end 10

Junit3.8 私有方法测试

1. 测试类的私有方法时可以采取两种方式:1) 修改方法的访问修饰符,将private修改为default或public(但不推荐采取这种方式).2) 使用反射在测试类中调用目标类的私有方法(推荐). 1 package junit; 2 3 public class Calculator2 4 { 5 private int add(int a, int b) 6 { 7 return a + b; 8 } 9 } 10 11 12 package junit; 13 14 import ja

使用PowerMockito和Mockito进行模拟测试,包括静态方法测试,私有方法测试等

依赖:这个很重要,不同版本用法也有点区别: <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>2.0.2-beta</version> <scope>test</scope> </dependency> <dependency> <group

spring-在切面类中定义私有方法解决重复编写execution函数

一.创建项目    项目名称:spring101002二.添加jar包    1.在项目中创建lib目录        /lib    2.在lib目录下添加相关spring jar包        --用于AspectJ        com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar        spring-aspects-3.2.0.RELEASE.jar        --用于切面编程        com.springsour

junit4 assert类中的assert方法总结

junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean condition);判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名.2.fail([String message,]);失败,可以有消息,也可以没有消息.3.assertEquals([String message,]Object expected,Object actu

JavaScript面向对象-静态方法-私有方法-公有方法-特权方法,学习

var baseClass= function(){ function show(){//私有方法 alert("访问私有方法"); } function showName(){ alert(this.name); } this.showw = function (){//特权方法 showName(); } } //静态方法 baseClass.showStatic = function(){ alert("访问静态方法"); } //公有方法 baseClass

通过反射访问私有方法

1 package com.dy.xidian; 2 3 import java.lang.reflect.InvocationTargetException; 4 import java.lang.reflect.Method; 5 6 class A { 7 private void a() { 8 System.out.println("This is a function"); 9 } 10 } 11 public class TestReflect { 12 public s