如果在测一个类的某一个方法时,这个方法还调用了此类的其他方法,那么如何指定其他方法的返回值呢?
public class Calc {
- static {
- System.out.println("hahaha");
- }
- public int add(int a, int b) {
- return interADD(a, b);
- }
- private int interADD(int a, int b) {
- return a + b;
- }
- public int minus(int a, int b) {
- return interMinus(a, b);
- }
- public int interMinus(int a, int b) {
- return a-b;
- }
- }
- package com.kevin.util;
- import static org.junit.Assert.*;
- import junit.framework.Assert;
- import org.easymock.EasyMock;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.powermock.api.easymock.PowerMock;
- import org.powermock.core.classloader.annotations.PrepareForTest;
- import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
- import org.powermock.modules.junit4.PowerMockRunner;
- @RunWith(PowerMockRunner.class)
- @PrepareForTest({Calc.class})
- //suppress static initial
- @SuppressStaticInitializationFor({"Calc.class"})
- public class CalcTest {
- //mock private method in class that be testing
- @Test
- public void testAdd() {
- Calc createPartialMock = PowerMock.createPartialMock(Calc.class, "interADD");
- try {
- PowerMock.expectPrivate(createPartialMock, "interADD",2,3).andReturn(1000);
- PowerMock.replay(createPartialMock);
- int result = createPartialMock.add(2, 3);
- Assert.assertEquals(1000, result);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- fail();
- }
- }
- //mock public method int class that be testing
- @Test
- public void testMinus() {
- Calc createPartialMock = PowerMock.createPartialMock(Calc.class, "interMinus");
- try {
- EasyMock.expect(createPartialMock.interMinus(5, 4)).andReturn(1000);
- EasyMock.replay(createPartialMock);
- int result = createPartialMock.minus(5, 4);
- Assert.assertEquals(1000, result);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- fail();
- }
- }
- }