gpt4 book ai didi

spring-boot - 如何为Elasticsearchn CRUD操作处理否定的JUNIT测试用例

转载 作者:行者123 更新时间:2023-12-02 22:54:29 24 4
gpt4 key购买 nike

我为 flex 搜索CRUD操作创建了一个JUNIT测试用例,下面给出了代码。在代码审查阶段之后,我得到了团队的更新,我已经涵盖了测试用例的所有积极场景,但仍然没有涵盖消极场景。我不知道如何处理负面用例。

@Test
void findById() throws Exception {

EmployeeInformation EmployeeGet = Eservice.findById("elcrud", "2");

assertNotNull(EmployeeGet.getId());

assertNotNull(EmployeeGet.getFirstName());

assertNotNull(EmployeeGet.getLastName());

}

@Test
void deleteProfileDocument() throws Exception {

String Result = Eservice.deleteProfileDocument("elcrud", "3");

System.out.println(Result);

assertEquals(Result, "DELETED");
}

@Test
void search() throws Exception {

List<EmployeeInformation> Emp=Eservice.searchByTechnology("Lucidworks","elcrud");

System.out.println(Emp.size());

int Result = Emp.size();

assertTrue(Result >= 0 );
}

@Test
void searchByName() throws Exception {

List<EmployeeInformation> Emp=Eservice.findProfileByName("junit","elcrud");

System.out.println(Emp.size());

int Result = Emp.size();

assertTrue(Result >= 0 );
}

有人可以帮我实现上述代码的JUNIT测试用例的否定情形吗?

最佳答案

我认为您的技术团队需要测试ES的运行是否失败,没有结果或发生任何其他意外情况。

一个示例可能是删除配置文件:

如果删除操作成功,您已经完成了测试。但是您没有测试此操作是否失败或未成功处理。

@Test
void deleteProfileDocument() throws Exception {

//here you delete a profile which is NOT in the index
String Result = Eservice.deleteProfileDocument("elcrud", "3");

System.out.println(Result);

//and here you asssert the negative result. (Not sure which result will come)
assertEquals(Result, "NOT_FOUND");
}

我还看到在测试中,如果发生错误,则会引发异常。这可能是另一个很好的负面测试方案。因此,如果您可以将操作发送给ES并且该操作引发异常,则可以创建测试以预期该异常。

对于Junit4,您可以使用以下命令:
@Test(expected = YourExpectedException.class)

对于Junit5,您可以使用以下命令:
Exception exception = assertThrows(YourExpectedException.class, () -> {
Eservice.findProfileByName(Exception values);
});

String expectedMessage = "expected message";
String actualMessage = exception.getMessage();

assertTrue(actualMessage.contains(expectedMessage));

EDit通过附加问题

如果您有正面和负面的测试,我建议您将它们放在单独的测试方法中。因此,无需再将内容注释掉。

在您的情况下,可能是这样的:

正向:
@Test
void testUpdateItem_POSITIVE() throws Exception {
....
}

负:
@Test
void testUpdateItem_NEGATIVE() throws Exception {
....
}

关于spring-boot - 如何为Elasticsearchn CRUD操作处理否定的JUNIT测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60107953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com