Integration Test:更改spring对象的static final属性值

时间:2016-05-18 04:49:05

标签: java

我的Spring Service中有一个private static final int LIMIT = 1000

我试图在我的测试用例中使用反射来覆盖LIMIT的值,但是它不起作用。我正在进行集成测试,因此无法使用Mockito或Mock。

    Field maxFetchAllowed Manager.getClass().getDeclaredField("LIMIT");
    maxFetchAllowed.setAccessible(true);
    int modifiers = maxFetchAllowed.getModifiers();
    Field modifierField = maxFetchAllowed.getClass().getDeclaredField("modifiers");
    modifiers = modifiers & ~Modifier.FINAL;
    modifierField.setAccessible(true);
    modifierField.setInt(maxFetchAllowed, modifiers);
    maxFetchAllowed.set(null, 100); //set the value correctly 
    System.out.println(maxFetchAllowed.get(null)); // shows 100

但是当我调用create方法进行测试时,它仍然有1000个

manager.create() // still has 1000 

0 个答案:

没有答案