0
我只想从HttPServletRequest中设置属性。以下是Jmockit的代码片段。委托方法不适用于Jmockit单元测试
new Expectations() {
private final Delegate requestAttributeDelegate = new Delegate() {
final Map<String, Object> attributes = new HashMap<String, Object>();
Object getAttribute(String key) {
return attributes.get(key);
}
void setAttribute(String key, Object value) {
attributes.put(key, value);
}
}; {
req.getParameter(ParameterConstant.ACTION); result = ActionConstant.REMOVE;
req.getParameter(ParameterConstant.EMAIL); result = myEMail;
req.getRequestDispatcher(PageConstant.USER_REMOVE_GROUP_FORM); result = dispatcher;
req.setAttribute(ConfigurationConstant.GROUPS, groups); result = requestAttributeDelegate;
dispatcher.forward(req, resp); times = 1;
}};
该行的结果:req.setAttribute(ConfigurationConstant.GROUPS, groups); result = requestAttributeDelegate;
从不与委托方法一起使用。
这是错误信息提示:
java.lang.IllegalArgumentException: More than one non-private invocation handler method found
at com.company.cisco.actionitems.test.UserTest$16.<init>(UserTest.java:371)
at com.company.cisco.actionitems.test.UserTest.Test013_ActionRemove_DoGet_Case01(UserTest.java:355)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
什么这个是错的???