我正在用它来实现一个模拟来调用我的抽象类。mockito.mock(abstractService.class,mockito.calls_real_methods)
但我的问题是,我的抽象类有太多的依赖关系是自动连接的。子类是@component
。如果它不是一个抽象类,我会使用@InjectMocks来注入这些模拟依赖项。而是如何将mock添加到我上面给出的实例中。
在此处简化代码版本/
abstract class AbstractService{
@Autowired
DependencyOne dp1;
@Autowired
private DependencyOne dp2;
public void doSometingSpecial(){
dp1.Dosomething(dp2.dosomethingElse())
.....
.....
}
}
我的Junit是
@ExtendWith(SpringExtension.class)
@TestInstance(Lifecycle.PER_CLASS)
class AbstractServiceTest {
@Mock
private DependencyOne dp1;
@Mock
private DependencyOne dp2;
.....
.....
@Test
void testDirectCall_whenSomething_thenSomerhing(){
AbstractService service = Mockito.mock(AbstractService.class,Mockito.CALLS_REAL_METHODS);
//How to inject dep1 and dp2 mock to write junit for doSometingSpecial()
}
}
只需单独为父类添加inject mock
@InjectMocks
AbstractService abstractService;
内测方法给出,
@Test
void testDirectCall_whenSomething_thenSomerhing(){
when(myAbstractClass.doSometingSpecial()).thenReturn("good");
Assert.assertEquals("good",myAbstractClass.doSometingSpecial());
}
不需要
AbstractService service = Mockito.mock(AbstractService.class,Mockito.CALLS_REAL_METHODS);
问题内容: 方法和注释之间有什么区别?他们是一样的吗? 例如,这是: 与: 问题答案: 它们都达到相同的结果。通常不会使用注解(),因为您不会用看起来都一样的样板分配来填充代码。 请注意,为了使用注释,您的测试类应在其方法中进行注释或包含对的调用。
mockito.mock()
我在类上设置了一些注释,注释与注释位于同一行,例如: 但是,每次格式化文件时,我的同一行注释都会移动到下一行。这不仅是不可取的,因为它移动了我的评论,更糟糕的是,它将评论置于一个混乱的地方。上述示例变为: 如何阻止Eclipse在格式化后移动这些注释?或者,如何让Eclipse将注释移到上面的一行,而不是下面的一行?非常感谢。
我有一个使用Spring Batch编写的批处理作业 我在下面有一个配置文件: 我有Json线聚合如下: 我想注入对象映射器,不想在JsonLineAggregator类中创建它。我知道如何使用DI实现它吗?
以下是关于Spring Boot中集成测试的教程:http://www.baeldung.com/spring-boot-testing 但是当我尝试注入MockMvc时,我总是得到: 创建在类路径资源[org/springframework/boot/test/autoconfigure/web/servlet/MockMvcAutoConfiguration.class]中定义的名为“mock
我插入数据到一个电子表格与新的谷歌工作表API v4,代码完美的工作和数据它是插入良好的工作表。 但是如何找出最后一行有数据来添加后面的数据呢? A1符号中有什么技巧吗? 我需要一个相当于。