Mockito对象模拟更改为null

时间:2017-05-01 05:42:01

标签: java unit-testing mockito

我正在尝试模拟以下函数:

// Class ObjClass
public void updateColumn(long id, MyObj myObj, String errorLog) throws Exception {
        try {
            MyObj2 obj2 = entityManager.find(MyObj2.class, id);
            obj2.setStatus(myObj);
            obj2.setTime(System.currentTimeMillis());
            obj2.setErrorLog(errorLog);
            entityManager.persist(obj2);
        }
        catch (Exception e) {
            //some stuff...
        }
    }

我的测试类代码如下所示:

@Mock

private EntityManager entityManager;

@InjectMocks
private ObjClass objClass;

@Mock
private MyObj2 myObj2;

Mockito.when(entityManager.find(MyObj2.class, id)).thenReturn(myObj2);
    ObjClass.updateColumn(id, myObj.SUCCESS, null);

在这里,当测试代码通过并到达MyObj2 obj2 = entityManager.find(MyObj2.class, id);

行时,我得到一个null

obj2在这里为null,但是,在调试时,在我的测试方法到达此类之前,obj2具有来自测试类代码@Mock private MyObj2 myObj2;的模拟值

有人可以建议可能出错的地方吗?使用Mockito。

另外,我想在 updateColumn 方法中模拟setter并验证它们。有人可以帮助那些吗?

0 个答案:

没有答案