public void testInsertionMethod() throws Exception {
String URI = "/insertionURL";
ShoppingList list = new ShoppingList (3, new Fruit(1), new Vegetable(1));
String inputJson= this.jsonConversionMethod(list);
Assert.assertEquals(1, list.getNumOfItems());
Assert.assertEquals(1, list.getFruit().getFruitId);
Assert.assertEquals(1, list.getVegetable.getVegetableId());
Mockito.when(shoppingListSvc.save(Mockito.any(ShoppingList.class))).thenReturn(list);
MvcResult mvcResult = this.mockMvc.perform(MockMvcRequestBuilders.post(URI).param("fruitId", "1").param("vegId", "1"). accept(MediaType.APPLICATION_JSON).content(inputJson).contentType(MediaType.APPLICATION_JSON)).andReturn();
MockHttpServletResponse mockHttpServletResponse = mvcResult.getResponse();
String jsonOutput = mockHttpServletResponse.getContentAsString();
assertThat(outputJson).isEqualTo(inputJson);
Assert.assertEquals(HttpStatus.OK.value(), mockHttpServletResponse.getStatus());
}
是组件测试。另外,您的测试类可能被注释为
@AutoConfigureMockMvc
@SpringBootTest
因为您正在使用mockMvc模拟对endpoint的调用。
在我看来,做这部分是没有意义的
Assert.assertEquals(1, list.getNumOfItems());
Assert.assertEquals(1, list.getFruit().getFruitId);
Assert.assertEquals(1, list.getVegetable.getVegetableId());
.andExpect(status().isOk())
.andExpect(jsonPath("$.id", equalTo(...)))
.andExpect(jsonPath("$.firstName", notNullValue()))
.andExpect(jsonPath("$.lastName").isNotEmpty())
.andExpect(jsonPath("$.email", equalTo(...)))
.andExpect(jsonPath("$.partnerId", equalTo(...)));
.andExpect(jsonPath("$.id").isNotEmpty())
Spring对MockMvc有2个设置: 独立设置 WebApplication Context安装 一般来说,MockMvc用于哪种测试?单元还是集成?或者两者兼而有之? 使用独立设置(运行在Spring应用程序上下文之外)允许您编写单元测试,而使用WebApplication Context设置您可以编写集成测试,这是对的吗?
单元测试 单元测试仅依赖于源代码,是测试代码逻辑是否符合预期的最简单方法。 运行所有的单元测试 make test 仅测试指定的package # 单个package make test WHAT=./pkg/api # 多个packages make test WHAT=./pkg/{api,kubelet} 或者,也可以直接用go test go test -v k8s.io/kubernet
问题内容: 您能用几句话来解释一下吗: 为什么我们需要它/为什么它们使我们的生活更轻松? 如何对[Java中的简单示例]进行单元测试? 什么时候我们不需要它们/项目类型,我们可以不进行单元测试? 有用的链接 问题答案: 为什么我们需要它/为什么它们使我们的生活更轻松? 它允许您检查要测试的代码段的预期行为,并作为它必须满足的合同。 它还允许您安全地重构代码,而不会破坏其功能(合同)。 它使您可以通
我的问题是:我是否应该修复我的单元测试,因为他们没有找到错误?单元测试不应该考虑其他类吗?我只是修改了我的生产性代码,因为集成测试覆盖这些内容就足够了。 编辑: 由于这些答复,似乎有必要进一步说明我的问题。我仍然不确定哪个测试负责什么。 好吧,我的测试有100%的代码复盖率,我创造的突变体被我的测试检测到,所以一切看起来都很好。 我的第二个类是一个处理程序,它负责在每次调用handler.next
问题内容: 假设我有实现它的接口和实现类,并且我想为此编写单元测试。我应该测试什么接口或Impl? 这是一个例子: 因此,我有实现它的HelloInterface和HelloInterfaceImpl。什么是被测单元接口或Impl? 我认为应该是HelloInterface。请考虑以下JUnit测试草图: 主线实际上是我注释掉的那条线。 方法不是我的公共接口的一部分,所以我不想 意外地 调用它。如
另请参见私有/受保护的方法是否应该在单元测试下? EDIT-2在多个实现\多个接口的情况下,我将测试所有的实现,但是当我在方法中声明变量时,我肯定会使用interface。