zoukankan      html  css  js  c++  java
  • PowerMock使用遇到的问题——2

    如果在测一个类的某一个方法时,这个方法还调用了此类的其他方法,那么如何指定其他方法的返回值呢?

    Partial mock local private method or public method in the class and suppress static initial block

     
    public class Calc {  
    1.     static {  
    2.         System.out.println("hahaha");  
    3.     }  
    4.   
    5.     public int add(int a, int b) {  
    6.         return interADD(a, b);  
    7.     }  
    8.   
    9.     private int interADD(int a, int b) {  
    10.         return a + b;  
    11.     }  
    12.   
    13.     public int minus(int a, int b) {  
    14.         return interMinus(a, b);  
    15.     }  
    16.       
    17.     public int interMinus(int a, int b) {  
    18.         return a-b;  
    19.     }  
    20. }  
    21.   
    22. package com.kevin.util;  
    23.   
    24. import static org.junit.Assert.*;  
    25. import junit.framework.Assert;  
    26.   
    27. import org.easymock.EasyMock;  
    28. import org.junit.Test;  
    29. import org.junit.runner.RunWith;  
    30. import org.powermock.api.easymock.PowerMock;  
    31. import org.powermock.core.classloader.annotations.PrepareForTest;  
    32. import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;  
    33. import org.powermock.modules.junit4.PowerMockRunner;  
    34.   
    35. @RunWith(PowerMockRunner.class)  
    36. @PrepareForTest({Calc.class})  
    37. //suppress static initial   
    38. @SuppressStaticInitializationFor({"Calc.class"})  
    39. public class CalcTest {  
    40.   
    41.     //mock private method in class that be testing   
    42.     @Test  
    43.     public void testAdd() {  
    44.         Calc createPartialMock = PowerMock.createPartialMock(Calc.class"interADD");  
    45.         try {  
    46.             PowerMock.expectPrivate(createPartialMock, "interADD",2,3).andReturn(1000);  
    47.             PowerMock.replay(createPartialMock);  
    48.             int result = createPartialMock.add(23);  
    49.             Assert.assertEquals(1000, result);  
    50.         } catch (Exception e) {  
    51.             // TODO Auto-generated catch block   
    52.             fail();  
    53.         }  
    54.     }  
    55.       
    56.     //mock public method int class that be testing   
    57.     @Test  
    58.     public void testMinus() {  
    59.         Calc createPartialMock = PowerMock.createPartialMock(Calc.class"interMinus");  
    60.         try {  
    61.             EasyMock.expect(createPartialMock.interMinus(54)).andReturn(1000);  
    62.             EasyMock.replay(createPartialMock);  
    63.             int result = createPartialMock.minus(54);  
    64.             Assert.assertEquals(1000, result);  
    65.         } catch (Exception e) {  
    66.             // TODO Auto-generated catch block   
    67.             fail();  
    68.         }  
    69.     }  
    70. }  
  • 相关阅读:
    活久见!Jmeter也能实现文件传输和发送邮件啦
    震惊!资深测试开发已经不用postman测试接口了!
    app测试日志如何获取,logcat值得拥有
    TestNG学会了,Java单元测试你就掌握了一半
    超实用:精准衡量接口测试覆盖率
    Reviewboard用户指南(1.3)—— Getting Started: General Workflow
    Reviewboard用户指南(1.2)—— Getting Started: What is Code Review?
    Reviewboard用户指南(1.4)—— Getting Started: Account Settings
    Reviewboard管理员指南(4.1)—— Overview of the Administration UI
    Reviewboard用户指南(6.4)——Issue Tracking
  • 原文地址:https://www.cnblogs.com/xiaotianyu/p/3300309.html
Copyright © 2011-2022 走看看