2017-10-16 99 views
0

我正在尝试假设产品尚不存在,以测试更新产品实体的PUT请求。因此我在测试中为以下逻辑建模:如何正确单元测试PUT方法

  • 创建一个产品。该产品具有一个列表,作为每次创建或更新产品时自动增量的字段。所以我预计在创建后大小等于1。
  • 执行GET请求来检查大小。断言assertTrue(response.getBody().getData().size() == 1);按预期返回true。
  • 然后,我想对PUT请求建模,并检查更新产品的size字段是否已递增。 所以断言是更新产品的大小字段必须大于先前更新请求的大小字段。

但是我坚持在这一点上,需要在这种情况下如何继续PUT请求的建议。

@RequestMapping(method = RequestMethod.PUT) 
     @ResponseStatus(HttpStatus.OK) 
     void updateProduct(@PathVariable("name") String productName); 

@Test 
     public void checkUpdated() { 

     Product newProduct = createProduct(SIMPLE_PRODUCT); 

     ResponseEntity<SimpleProduct> response = restTemplate.getForEntity("/products/{name}/?fields={fields}", 
        SimpleProduct.class, SIMPLE_PRODUCT); 
      assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); 
      assertTrue(response.getBody().getData().size() == 1); 
} 

回答

0

既然你已经标记了这个问题,为testng我会假设你在TestNG的这样做。

  • 在您的createProduct()方法中,在创建后检索列表的大小,并将其保存在类级数据成员中。
  • 你的checkUpdated()依靠createProduct()通过使用@Test注释的dependsOnMethod属性。
  • 使用类级数据成员进行断言,其中您在PUT之后将其值与列表进行比较,并检查其是否小于列表文件PUT操作的大小。