【发布时间】:2020-01-01 17:41:07
【问题描述】:
有一个abstract 类
public abstract class BaseProcessor {
public BooksTransaction getBooksTransaction() {
return booksTransaction;
}
}
还有一个 final class 将使用 Junit 进行测试
public final class CreateOrganisationProcessor extends BaseProcessor {
public boolean process() throws Exception { //method to be tested
request = new CreateOrganisationRequest(IntegrationSystems.valueOf(getBooksTransaction().getSource()),
IntegrationSystems.valueOf(getBooksTransaction().getDestination()), getBooksTransaction());
request.setRequestTypes(getRequestTypes());
return true;
}
}
我尝试spying BaseProcessor 类和模拟 getBooksTransaction 方法到return BooksTransaction 对象。
代码:
@Test
public void testProcess() throws Exception {
BaseProcessor spy = Mockito.spy(new CreateOrganisationProcessor());
BooksTransaction booksTransaction = new BooksTransaction();
booksTransaction.setReferenceID(DEFAULT_REFERENCE_ID);
Mockito.doReturn(booksTransaction).when(spy).getBooksTransaction();
}
这里,BooksTransaction 是一个 JPA Entity 类。
但是,当我运行测试用例时,模拟似乎没有工作,它没有返回 BooksTransaction 对象。
它既不会抛出exception,也不会抛出任何error。
我想知道spy 这个方法的正确方法,以便它根据我的mock 返回一个BooksTransaction 的对象。
我是Mockito 的新手,任何帮助都将不胜感激。
提前致谢。
【问题讨论】:
标签: java unit-testing mockito junit4 spy