我正在测试我的Spring Boot Services。
我有一个ServiceA
,其中包含RepositoryA
ServiceB
和RepositoryB
ClassA
。
我还有ClassB
> 1:n> ClassA
(ClassB
拥有ClassB
。ClassA
没有提及ClassB
)。
在我的测试中,我需要将ClassA
添加到ClassA
,然后将ServiceB
与其服务一起保存。
然后我必须测试一个内部调用void
方法的ClassB
方法。为此,我需要一个持久的void
,因为RepositoryA
中的ServiceA
- 方法测试“EntityNotFound”并抛出一个导致测试失败的异常。
所以我需要在ServiceBTest.java
中使用ClassA
来保留ClassB
我需要使用的@InjectMocks
。
我正在使用Mockito进行测试,因此我尝试使用@Mock
和@InjectMocks
private ServiceA serviceA;
@InjectMocks
private ServiceB serviceB;
@Mock
private RepositoryA repoA;
@Mock
private RepositoryB repoB;
@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}
注入两个服务。但那不起作用。如果我这样做,NOTHING工作正常。
B
任何人都可以帮我完成这项工作?
对于no,我用ClassBTest.java中的内部“Testable”类替换了A a = new A();
B b = new B();
C c = new C();
b.addC(c);
a.addB(b)
serviceA.update(a); //must be "persisted" to persist b as well
C cEmpty = new C();
Mockito.when(serviceB.update(Mockito.any(B.class))).thenReturn(cEmpty); // plain object to compare with
serviceB.removeCFromB(b, c); // 1. -> remove 2.-> update 2.1 -> checkEntityNotFound
C result = serviceB.findC(a, b, 0);
Assert.assertNull(result);
的存储库和服务。但问题是原始类的代码覆盖率没有增加。
{{1}}