gpt4 book ai didi

java - 在测试用例中使用 if/switch/for 条件

转载 作者:行者123 更新时间:2023-12-01 18:27:27 25 4
gpt4 key购买 nike

我正在寻找使用 JUnit 在 selenium 中编写测试用例的最佳实践。

如果某些测试使用 switch 或 if,是否应该将其拆分为不同的测试用例以避免条件或在测试中使用条件“可以” ?为什么?

编辑:我需要知道您是否可以选择拆分使用 if 的测试用例并切换到较小的测试以避免在其中使用条件,您愿意拆分它还是可以使用 junit selenium 内部的条件测试?

谢谢你:-)

最佳答案

这可能会有所帮助...

测试应该很简单。快速地。独立的。和幂等性

如果您有大型 switch 语句或 if 梯形图,那么可以。您应该将它们分成不同的测试。考虑以下事项:(这是使用 getting-started-with-selenium 框架)

@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myLongTest() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.store("some_variable", getText("#element");
// some_variable will be "a" | "b" | "c"
switch ((String) get("some_variable")) {
case "a":
click("#a")
.validatePresent("#something");
break;
case "b":
click("#b")
.validatePresent("#something-else");
break;
case "c":
click("#c")
.validatePresent("#something-else-else");
break;
}
}

您可以将其分为三个不同的测试用例,每个测试用例一个,而不是进行冗长的测试,按照传统标准,这会很好,因为测试会更快。

@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myShortTest_CaseA() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.click("#a")
.validatePresent("#something");
}

@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myShortTest_CaseB() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.click("#b")
.validatePresent("#something-else");
}

@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myShortTest_CaseA() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.click("#c")
.validatePresent("#something-else-else");
}

关于java - 在测试用例中使用 if/switch/for 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25574827/

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