java - 如何模拟从测试类的另一种方法获得的局部变量?

标签 java testing mocking mockito powermock

我有以下类(class)

class MyClass{
   public void m(InputStream is){
       ...
       Parser eParser = getExcelFileParser();
       eParser.parse(is);
       ...
       eParser.foo();
       eParser.bar();

   }
   public ExcelFileParser getExcelFileParser(){
       ...
   } 
}

在这种情况下如何为方法m 编写单元测试?我只想模拟 eParser 对象。

这可能吗?

我使用 Mockito 和 PowerMockito

最佳答案

您可以使用 spy 在 Mockito 中做您想做的事(不需要 PowerMock),而无需更改您的代码。

在单元测试中,您需要执行以下操作:

ExcelFileParser parser = mock(ExcelFileParser.class);
MyClass myClass = spy(new MyClass());
doReturn(parser).when(myClass).getExcelFileParser();

关于java - 如何模拟从测试类的另一种方法获得的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153633/

相关文章:

c# - 测试复杂实体

c# - 如何用最小起订量模拟 Microsoft.Office.Interop.Excel.Range?

java - 如何在 Mockito 中模拟方法参数

java - 字符错误 "char cannot be converted to string"

ruby-on-rails - Unit::Test 与 Rspec 之间的区别

java - 使用 spock 进行单元测试 - 在私有(private)字段上测试交互

unit-testing - Mockito.thenReturn(...) 不工作

java - 如何使自动完成预测可点击?

java - 在将输入流解析为 XML 之前,如何替换输入流中的 HTML 转义字符?

java - Math.IEEEremainder() 和 StrictMath.IEEEremainder() 之间的区别