我有A类,它依赖于B类.B类再次依赖C类.结构如下:
Class A(){
@Autowired
private B b;
public void someMethod(){
b.callAnotherMethodAndGetValue();
}
}
Class B(){
@Autowired
private C c;
public void callAnotherMethodAndGetValue(){
c.callAnother();
}
}
Class ATest(){
@Spy
private B b;
public void someMethod(){
// it goes into this method, and throws null pointer exception at
// c.callAnother(); as c is null.
b.callAnotherMethodAndGetValue();
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让堆栈c.callAnother从Test Cases 流出来.没有做的时候b.callAnotherMethodAndGetValue();
你需要模仿C:而不是窥探b:
@Mock
C c;
@InjectMocks
B b;
@Test
public void someMethod(){
b.callAnotherMethodAndGetValue();
}
Run Code Online (Sandbox Code Playgroud)
因为你使用构造函数注入你会让你的生活更轻松!
我正在为A类编写测试用例.对于A类内部测试,我应该做@InjectMocks A a并且应该这样做
a.someMethod()- Jyoti Yadav
那么测试看起来应该是这样的:
@Mock
B b;
@InjectMocks
A a;
@Test
public void someMethod(){
a.someMethod();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |