alibaba / alibaba/testable-mock
java.lang.NoSuchMethodError:Mock容器类下的@MockNew方法,无法通过@MockContainer继承生效
- Dominant language
- Java
- Stars
- 1.8k
- Forks
- 306
- PR merge metrics
- No merged PRs in 30d
Description
```
public class TaskServiceServantImplTest {
@MockContainer(inherits = {TaskManagerMock.class})
public static class Mock {
}
@Test
public void getUserTaskList() throws Throwable {
TaskQuery taskQuery = AutoGenerateData.getTaskQuery();
TaskPageDTO taskPageDTO = taskService.getUserTaskList(taskQuery);//此处调用了 new TaskMessageManager(context)
}
}
public class TaskMessageManagerMock{
@MockNew
public TaskMessageManager createTaskMessageManager(ApplicationContext context) {
System.out.println("------Success createTaskMessageManager------");
return null;
}
}
```
将createTaskMessageManager()放入TaskServiceServantImplTest 的Mock下能生效
通过@MockWith绑定TaskMessageManagerMock能生效
唯独通过上面这种方法无法生效
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the @MockContainer inheritance path shown in TaskServiceServantImplTest and trace how TaskManagerMock and TaskMessageManagerMock are discovered. Compare it with the working local Mock and @MockWith cases; done means the inherited @MockNew createTaskMessageManager method intercepts new TaskMessageManager(context) as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100