我正在尝试对put请求进行测试,它给了我空指针错误,只是在这种类型的请求中,我不知道为什么请有人帮我,这是我的控制器:
@PutMapping ("/update/{id}")
public Entreprise updateEntreprise(@PathVariable Long id,@RequestBody Entreprise entreprise ) {
Entreprise e=entrepriseService.getEntreprise(id);
e.setDescription(entreprise.getDescription());
e.setNom(entreprise.getNom());
e.setNumberCertificats(entreprise.getNumberCertificats());
e.setNumberClients(entreprise.getNumberClients());
e.setNumberYears(entreprise.getNumberYears());
e.setNumberCollaborators(entreprise.getNumberCollaborators());
entrepriseService.updateEntreprise(e);
return e;
}
对于测试方法:
@RunWith(SpringRunner.class)
@WebMvcTest(value = EntrepriseController.class, secure = false)
public class TestsEntrepriseController {
@Autowired
private MockMvc mockMvc;
@MockBean
EntrepriseService entrepriseService;
@Test
public void givenEntrepriseURIWithPut_whenMockMVC_thenVerifyResponse() throws Exception {
Entreprise entreprise = new Entreprise();
entreprise.setId(1);
entreprise.setNom("oumaima");
entreprise.setDescription("description");
entreprise.setNumberCertificats(12);
entreprise.setNumberClients(15);
entreprise.setNumberCollaborators(20);
entreprise.setNumberYears(12);
Services services = new Services();
services.setNom("cloud");
services.setId(1);
Set<Services> allServices = new HashSet<>(Arrays. asList(services));
entreprise.setServices(allServices);
mockMvc.perform(put("/entreprise/update/1")
.contentType(IntegrationTestUtil.APPLICATION_JSON_UTF8)
.content(IntegrationTestUtil.convertObjectToJsonBytes(entreprise))
)
.andExpect(status().isBadRequest())
.andExpect(content().string("{\"fieldErrors\":[{\"path\":\"title\",\"message\":\"The title cannot be empty.\"}]}"));
}
}
我没有看到你嘲笑服务电话。添加-Mockito。when(EnterpriseService.getEnterprise(Mockito.anyLong()))。thenReturn(新企业())
您需要模拟来自entreseService
的两个调用
尝试运行以下代码
@RunWith(SpringRunner.class)
@WebMvcTest(value = EntrepriseController.class, secure = false)
public class TestsEntrepriseController {
@Autowired
private MockMvc mockMvc;
@MockBean
EntrepriseService entrepriseService;
@Test
public void givenEntrepriseURIWithPut_whenMockMVC_thenVerifyResponse() throws Exception {
Entreprise entreprise = new Entreprise();
entreprise.setId(1);
entreprise.setNom("oumaima");
entreprise.setDescription("description");
entreprise.setNumberCertificats(12);
entreprise.setNumberClients(15);
entreprise.setNumberCollaborators(20);
entreprise.setNumberYears(12);
Services services = new Services();
services.setNom("cloud");
services.setId(1);
Set<Services> allServices = new HashSet<>(Arrays. asList(services));
entreprise.setServices(allServices);
Mockito.when(entrepriseService.getEntreprise(Mockito.any())).thenReturn(new Entreprise());
Mockito.when(entrepriseService.updateEntreprise(Mockito.any(Entreprise .class))).thenReturn(entreprise);
mockMvc.perform(put("/entreprise/update/1")
.contentType(IntegrationTestUtil.APPLICATION_JSON_UTF8)
.content(IntegrationTestUtil.convertObjectToJsonBytes(entreprise))
)
.andExpect(status().isBadRequest())
.andExpect(content().string("{\"fieldErrors\":[{\"path\":\"title\",\"message\":\"The title cannot be empty.\"}]}"));
}
}
...还有一个很简单的测试... 如果我在IntelliJ中运行这个,测试就会运行并失败。 如果我提交这个项目并将其推送到github,TeamCity会看到变化并开始构建。生成会很快失败,出现以下错误:
我有这个过滤器类,在使用junit进行测试时需要尽可能高的代码覆盖率。 和测试等级: 当我运行时,它在 线 我如何避免这种情况? 我需要调用这个方法并执行里面的任何内容来提供所需的代码覆盖。
我正在使用Jenkins CI构建我的iOS项目。对于这个任务,我使用sh脚本通过运行xcodebuild直接从git repo构建二进制文件,这很好。目前,我使用eclipse中的appium运行JUnit测试来测试我的应用程序,但我也想将它们集成到Jenkins中。我找到了一些使用ant脚本将JUnit测试集成到jenkins中的教程,但我没有使用ant来构建我的项目。没有ant脚本,我如何将
我有DaoImpl类: 我的测试是: 测试是成功的,但是当我运行具有覆盖率的junit测试时,它显示方法没有被覆盖,因此我的整体单元测试行覆盖率低于要求。我们能涵盖那部分吗?如果是,我们怎么做?谢了。
问题内容: 也许我的问题是新手,但是我真的无法理解在什么情况下使用junit? 无论是编写简单的应用程序还是大型应用程序,我都使用语句对其进行测试,这对我来说很容易。 如果仍然需要调用相同的方法,检查它们返回的内容,然后又要为所有内容添加注释,那么为什么要使用JUnit创建测试类,在项目中创建不必要的文件夹呢? 为什么不编写一个类并立即对其进行测试而不创建Test-class? PS。我从未在刚刚
我现在开始使用JUnit5和Spring Boot的测试。我有一个包含控制器、服务和存储库的Rest API,以及一些使用从我的获取属性的utils类。我没有使用Spring中的“profiles”,只是使用默认配置。 我的应用程序主: 我的项目的体系结构是: 我在主测试类中尝试了“@TestPropertySource”和/或“@ActiveProfiles(”Test“)”,但没有成功。还尝试