我目前正在尝试对Spring 4.0中添加的WebSockets的支持,如本指南中所述。如指南中所示,带有注释的方法@MessageMapping可以添加到任何Spring MVC控制器中,其中也可能包含@RequestMapping方法。
弹簧测试模块有编写集成测试的支持@RequestMapping方法(如描述在这里以一种非常简单和流体的方式):
@Test
public void getAccount() throws Exception {
this.mockMvc.perform(get("/accounts/1").accept(MediaType.parseMediaType("application/json;charset=UTF-8")))
.andExpect(status().isOk())
.andExpect(content().contentType("application/json"))
.andExpect(jsonPath("$.name").value("Lee"));
}
Run Code Online (Sandbox Code Playgroud)
是否有@MessageMapping使用WebSockets的测试方法的类似支持?我没有在任何Spring模块中找到任何东西,并且WebSocket指南均未包含任何测试。如果没有,我是否需要实际部署应用程序并使用WebSocketConnectionManager来连接测试客户端?还是我可以从春季测试中构建一些API?
这个示例项目包含一个如此小的测试客户端,但是我希望将其集成到实际测试中,而无需我部署应用程序并在测试中对已部署的路径进行硬编码。
我在名为"MyClass"的类中有一个静态的"Builder"类.如果我尝试从两个线程同时使用构建器创建两个MyClass实例,它会安全吗?可以将一个线程设置的值分配给另一个线程创建的对象吗?
码:
public class MyClass {
private int height;
private int weight;
private MyClass(Builder builder) {
height = builder.height;
weight = builder.weight;
}
public static class Builder {
private int height;
private int weight;
public Builder height(int h) {
height = h;
return this;
}
public Builder weight(int w) {
weight = w;
return this;
}
public MyClass build() {
return new MyClass(this);
}
}
}
Run Code Online (Sandbox Code Playgroud)