在google上搜索,如何在单元测试中模拟变量并看到一些建议,对于我的情况它不起作用。我的情景是,
SELECT encode(column_name, 'escape') FROM table_name;
这是我写的课程。该课程的单元测试如下,
class Keys {
private static Keys sKeys;
private String enKey = null;
static synchronized sKeys getInstance() {
if(sKeys == null) {
sKeys = new Keys();
}
return sKeys;
}
Boolean isLocked() {
if(enKey == null ) {
return true;
}
return false;
}
}
在这里,我想调用isLocked函数,我想将 enKey 变量值设置或模拟为null以外的其他值。
我怎么能这样做? 有人可以帮我吗?
答案 0 :(得分:0)
要模拟静态,您需要使用PowerMock或类似的库。
请参阅this问题和解答。
或者,您可以在重构静态设计(如果需要)后使用下面描述的方法。
使用Mockito创建模拟,
MyClass myMock = Mockito.mock(MyClass.class);
要为模拟类设置特定函数的返回值,
when(myMock.myFunc()).thenReturn(desiredValue);
请务必同时查看documentation。