【问题标题】:Spring MVC testing: How do I check if a model attribute does not exist?Spring MVC 测试:如何检查模型属性是否不存在?
【发布时间】:2015-05-25 20:22:09
【问题描述】:

我正在使用 Spring 3.2.11.RELEASE。我正在使用新的 3.2 模拟 MVC 框架进行单元测试,通常我可以使用以下内容检查模型属性……

private MockMvc mockMvc;
…

@Test
public final void test()
{
…
    mockMvc.perform(get(“/mypath”)
                    .param("userId", customerId))
                    .andExpect(status().isOk())
                    .andExpect(model().attribute(“attr1”, “value”))
                    .andExpect(view().name(“my view"));

但是我将如何调整上述内容以验证属性“attr1”未包含在我的模型中?

【问题讨论】:

  • Model 上还有一个 .containsAttribute() 方法

标签: spring spring-mvc junit


【解决方案1】:

比马克的方法更简单:

.andExpect(model().attributeDoesNotExist("attr"))

【讨论】:

  • 谢谢萨拉夫。请注意,这需要 spring-test-3.2.4 或更高版本。
【解决方案2】:

由于模型属性保存在映射中,您可以检查属性的值是否为 null(假设 null 不是该属性的有效值)。

.andExpect(model().attribute("attr1", nullValue());

其中nullValue()org.hamcrest.Matchers.nullValue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 2017-07-27
    • 2017-01-15
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多