Powermock和Easymock用法总结

@Test
@RunWith(PowerMockRunner.class)
@PrepareForTest(InstanceA.class)
这两个前缀,最好加在类前面。不写在方法上。可以直接单个测方法
 public void testSay3() throws Exception {
		File file =EasyMock.createMock(File.class); 
		//File f=new File("c:\\1.txt");
		//InstanceA underTest = PowerMockito.mock(InstanceA.class);
		//PowerMockito.when(underTest.getWord("123")).thenCallRealMethod();
		PowerMockito.whenNew(File.class).withArguments("123").thenReturn(file);
		FileReader reader =EasyMock.createMock(FileReader.class); 
		PowerMockito.whenNew(FileReader.class).withArguments(file).thenReturn(reader);
		BufferedReader in =EasyMock.createMock(BufferedReader.class); 
		PowerMockito.whenNew(BufferedReader.class).withArguments(reader).thenReturn(in);
		
		EasyMock.expect(in.readLine()).andReturn("中国").times(3).andReturn(null).times(3);
		in.close();
		EasyMock.expectLastCall();
		EasyMock.replay(in);
		
		InstanceA a= new InstanceA();
		System.out.println(a.getWord("123"));

	}
	@Test
	public void testSay4() throws Exception {
		File file =PowerMockito.mock(File.class); 
		File f=new File("c:\\1.txt");
		PowerMockito.whenNew(File.class).withArguments("123").thenReturn(f);
		InstanceA a= new InstanceA();
		System.out.println(a.getWord("123"));

	}

需要mock的类和方法:-----mock类内部创建的对象
package demo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class InstanceA implements InterfaceA{
    @Override
    public void say() {
        
    }
    @Override
    public String getWord(String str) {
        StringBuilder sb = new StringBuilder();
        File file = new File(str);
        String temp;
        BufferedReader in=null;
        try {
            FileReader reader = new FileReader(file);
            in =new BufferedReader(reader);
            while ((temp=in.readLine())!=null) {
                sb.append(temp);
            }
        } catch (FileNotFoundException e) {
        } catch (IOException e) {
        }finally{
            if (in!=null) {
                try {
                    in.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return str+sb.toString();
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值