Mockito测试返回为零

时间:2019-10-26 14:02:42

标签: spring

我正在尝试获取名为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();

那么我在测试中做错了什么,它将无法正常工作?

1 个答案:

答案 0 :(得分:0)

  

Mockito不是依赖项注入框架,不要指望此速记实用程序注入复杂的对象图,无论它是模拟/间谍还是真实对象。

     

同样,请注意@InjectMocks将仅注入使用@Spy或@Mock注释创建的模拟/间谍。

您的测试中没有任何@Mock@Spy带注释的bean,因此创建的MoneyServiceImplementation中的所有依赖项都是null