在Java(Spring Boot)应用程序中,我使用JUnit和Mockito,并想测试以下服务方法:
public Page<EmployeeDTO> findAll(EmployeeRequest request, final Sort sort) {
final List<EmployeeDTO> list = getDTOList(request);
// code omitted for brevity
}
getDTOList
方法在以下抽象类中:
public abstract class CustomCriteriaQueries {
private EntityManager entityManager;
protected void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
protected List<D> getDTOList(EmployeeRequest request) {
final CriteriaBuilder cb = entityManager.getCriteriaBuilder();
// code omitted
return entityManager
.createQuery(cq)
.stream()
.collect(Collectors.toList());
}
}
我尝试使用@mock
和stub通过mockito模拟
,但在我看来,它不能像在具体的类中那样被模拟。那么,我应该如何模拟抽象类中的变量和方法呢?EntityManager
。when()。然后()
在我看来,使用Mockito.when(CustomCriteriaQueries.class),然后模拟您需要使用的任何方法。
@Test
public void testMethod(){
CustomCriteriaQueries customCriteriaQueries = Mockito.when(CustomCriteriaQueries.class);
Assert.anyOperationYouNeed(customCriteriaQueries.getDTOList(this.buildEmployeeRequest));
}
下面是抽象类的代码: 现在,我应该如何为编写单元测试,并且应该如何在中模拟会话? 我在Stackoverflow上尝试了不同的解决方案,但仍然无法模拟它并获得会话模拟。
我正在尝试对扩展抽象基的类进行单元测试。以下是“类似的类”,以供说明: 下面是我正在尝试的单元测试: 当我做这个测试的时候 java.lang.NullPointerException 在中 我知道自动连线的“滤水器”没有初始化。但接下来,我只想在我的单元测试中模拟抽象的“非抽象”方法。 我该如何使用EasyMock来实现这一点呢?另外,我不知道和应该做什么。
问题内容: 考虑以下(简化的)枚举: 可以在以下函数中使用它: 我现在想为此编写一个单元测试,以模拟每个枚举实例中对myMethod()的调用。我尝试了以下方法: 但是,真正的实现和正在调用。 我做错了什么? 问题答案: 枚举中的每个常量都是一个静态的最终嵌套类。因此,要模拟它,您必须在PrepareForTest中指向嵌套类。 返回预初始化的数组,因此在您的情况下也应进行模拟。 每个枚举常量都只
本文向大家介绍php中的抽象方法和抽象类,包括了php中的抽象方法和抽象类的使用技巧和注意事项,需要的朋友参考一下 1、什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法。所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰。 例如: 2、什么是抽象类? 只要一个类里面
如何使用Mockito或PowerMock模拟一个由子类实现,但从抽象超类继承的受保护方法? 换句话说,我想测试“DoSomething”方法,同时嘲弄“DoSomethingElse”。 抽象超类 子类实现 解决方案 这里给出的答案是正确的,如果涉及的类是在同一包中,将会起作用。 但如果涉及不同的包,一个选择是使用PowerMock。下面的例子对我有效。当然可能有其他的方法,这是一个可行的。 注
问题内容: 我希望能够将go应用程序发出的每次写入/读取记录到底层操作系统,并且(如果可能)将FS完全替换为仅驻留在内存中的FS。 可能吗?怎么样?也许有一个现成的解决方案? 问题答案: 这直接是您(可能)不了解Go的 Andrew Gerrand的10件事: 为此,您需要编写代码以接受参数(也许将其嵌入其他类型,或者表示默认文件系统)。