我正在尝试获取名为totalmoney()的调用方法以获取h2数据库中的总金额,但它始终返回0。
@RunWith(MockitoJUnitRunner.class)
public class MoneyTests {
@InjectMocks
MoneyServiceImplementation MoneyServiceImplementation;
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
@Test
public void getAllMoney() {
long total_money = MoneyServiceImplementation.TotalMoney();
assertEquals("2000", total_money);
}}
但是它将通过以下方式返回正确的2000金额:
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("Bean.xml");
MoneyService MoneyService = (MoneyService) context.getBean("MoneyServiceImplementation");
long total_money = MoneyService.TotalMoney();
那么我在测试中做错了什么,它将无法正常工作?
答案 0 :(得分:0)
Mockito不是依赖项注入框架,不要指望此速记实用程序注入复杂的对象图,无论它是模拟/间谍还是真实对象。
同样,请注意@InjectMocks将仅注入使用@Spy或@Mock注释创建的模拟/间谍。
您的测试中没有任何@Mock
或@Spy
带注释的bean,因此创建的MoneyServiceImplementation
中的所有依赖项都是null
。