你会如何简洁地断言Collection元素的相等性,特别是Set在JUnit 4中?
我正在测试一个带有预期异常的方法.我还需要验证在抛出异常之后调用了一些清理代码(在模拟对象上),但看起来忽略了验证.这是代码.我正在使用Junit ExpectedException Rule来验证预期的异常.
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@Test
public void testExpectedException()
{
MockedObject mockObj = mock(MockedObj.class);
MySubject subject = new MySubject(mockedObj);
expectedEx.expect(MyException.class);
expectedEx.expectMessage("My exception message.");
subject.someMethodThrowingException();
verify(mockObj).
someCleanup(eq(...));
}
Run Code Online (Sandbox Code Playgroud)
似乎verify完全被忽视了.无论我放入什么方法verify,我的测试都是通过,这不是我想要的.
知道为什么会这样吗?
我想Iterator在Java中实现一个与Python中的以下生成器函数类似的行为:
def iterator(array):
for x in array:
if x!= None:
for y in x:
if y!= None:
for z in y:
if z!= None:
yield z
Run Code Online (Sandbox Code Playgroud)
java端的x可以是多维数组或某种形式的嵌套集合.我不确定这是如何工作的.想法?
我正在寻找queueJava中的快速实现.我看到它LinkedList实现了Queue接口,但它只会像LinkedList右边一样快?有没有办法让队列更快,尤其是add(我只需要poll,add并检查empty).在线下我可能还需要一个PriorityQueue但还没有.
我正在使用基于注释的验证,但对于其中一种表单,我无法使用form:errors标记显示任何错误.当我调试方法时,我可以看到BindingResult有错误,但由于某种原因它没有显示在窗体上.我很困难,因为我已经把它用于其他形式,但由于某种原因,这种特殊形式存在问题.任何指针都非常感谢.
这是来自控制器的一些代码,我在控制器中也有copyCartForm作为@SessionAttribute:
@RequestMapping(params="action=Confirm Copy", method=RequestMethod.POST)
public String copyCart(@Valid CopyCart copyCartForm, BindingResult result) {
if (result.hasErrors()) {
logger.debug("errors in form" + result.toString());
return "copyshoppingcart";
} else {
...
...
return "redirect:/home";
}
}
Run Code Online (Sandbox Code Playgroud)
在JSP中我试过这个:
<form:errors path="*" cssClass="formError"/>
Run Code Online (Sandbox Code Playgroud)
以及:
<form:errors path="fieldName" cssClass="formError"/>
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.
有没有办法将选项标记为默认选中,就像标签中的selected属性HTML option一样<option value="value1" selected>?
我正在使用form-login安全性,我正在尝试实现身份验证成功处理程序,但我不知道如何返回到登录过程之前最初请求的资源.默认情况下,我认为它实现了一个SimpleUrlAuthenticationSuccessHandler,我试图镜像该类实现.但是它设置了一个setDefaultTargetUrl(defaultTargetUrl)也许就是魔法发生的地方,它记住了在登录过程之后返回的资源.
任何帮助是极大的赞赏.下面是我的春季安全<form-login/>元素
<form-login login-page="/login.jsp" login-processing-url="/b2broe_login"
authentication-success-handler-ref="passwordExpiredHandler"
authentication-failure-url="/login.jsp?loginfailed=true" />
Run Code Online (Sandbox Code Playgroud) 如何在视图上显示由于@AssertTrue注释而发生的jsp验证错误消息?它不依赖于特定字段,但我使用它来验证字段组合.如果我使用<form:errors path="*"/>它将显示该表单的所有错误?
参考文档说url按照与声明的顺序匹配,但最后声明的一个匹配在之前声明的一些之前.
这里是我的报关表:
<intercept-url pattern="/static/**" filters="none" />
<intercept-url pattern="/login.jsp*" filters="none" />
<intercept-url pattern="/logout.jsp*" filters="none" />
<intercept-url pattern="/forgotpassword*" filters="none" />
<intercept-url pattern="/WEB-INF/jsp/forgotpassword*" filters="none" />
<intercept-url pattern="**/ordersearch*" access="hasRole('ROLE_VIEW_ORDER_STATUS')" />
<intercept-url pattern="**/creditstatus*" access="hasRole('ROLE_VIEW_CREDIT_STATUS')" />
<intercept-url pattern="**/shop*" access="hasRole('ROLE_INTERNAL') and hasRole('ROLE_CREATE_SALES_ORDER')" />
<intercept-url pattern="/**" access="hasAnyRole('ROLE_INTERNAL','ROLE_EXTERNAL')" />
Run Code Online (Sandbox Code Playgroud)
它尝试按顺序匹配所有filters="none",但随后跳转到最后一个模式/**.所以URL就像/appname/ordersearch被截取/**而不是**/ordersearch*.知道我做错了什么吗?
如何有效地附加到大文件.我有一个必须不断附加到文件的进程,随着文件大小的增加,性能似乎也会减慢.无论如何都要指定一个大的缓冲区大小append
java ×4
spring-mvc ×3
junit ×2
collections ×1
file-writing ×1
generator ×1
groovy ×1
iterator ×1
junit-rule ×1
mockito ×1
python ×1
queue ×1
spring ×1
unit-testing ×1