IOS UI 注销场景的测试问题
IOS UI Testing issue for Logout scenario
我在使用 XCTest 框架为 IOS 编写 UI 测试用例时遇到问题。
考虑一个 3 步注册过程和每个步骤 3 个测试用例。对于 运行 个测试用例,它要求用户注销。所以,我把代码写成
test1(){
//some code here for step 1
}
test2(){
test1()
//some code here for step 2
}
test3(){
test2()
//some code here for step 3
}
这在单独 运行 测试用例时工作正常。但是当 运行 它共同时,第一个测试成功运行但第二个测试失败,因为它要求注册用户在 运行 文本之前注销。
现在为了解决这个问题,我写了如下代码:
test1(){
//some code here for step 1
//logout code
}
test2(){
test1()
//some code here for step 2
//logout code
}
test3(){
test2()
//some code here for step 3
//logout code
}
现在的问题是,虽然 运行 第二个测试用例,它调用了第一个注销用户的函数,我们无法重用代码。
有更好的方法吗?
是的,当然。不要从另一个测试函数调用测试函数,而是为操作创建新函数,如下所示:
private func action1() {
//some code here for step 1
}
private func action2() {
action1()
//some code here for step 2
}
private func action3() {
action2()
//some code here for step 3
}
private func logoutAction() {
//logout code
}
然后,在您的测试中,调用这些操作函数,如下所示:
func test1() {
action1()
logoutAction()
}
func test2() {
action2()
logoutAction()
}
func test3() {
action3()
logoutAction()
}
您应该使用 XCTest
的 setup()
and tearDown()
方法来重置应用程序的状态。
另外,不要从一个测试调用另一个测试。每个测试都应该自行设置,而不是依赖于其他测试。如果测试之间有共同的功能,您可以在测试中创建一个函数 class,您可以从每个测试中调用它。
我在使用 XCTest 框架为 IOS 编写 UI 测试用例时遇到问题。
考虑一个 3 步注册过程和每个步骤 3 个测试用例。对于 运行 个测试用例,它要求用户注销。所以,我把代码写成
test1(){
//some code here for step 1
}
test2(){
test1()
//some code here for step 2
}
test3(){
test2()
//some code here for step 3
}
这在单独 运行 测试用例时工作正常。但是当 运行 它共同时,第一个测试成功运行但第二个测试失败,因为它要求注册用户在 运行 文本之前注销。 现在为了解决这个问题,我写了如下代码:
test1(){
//some code here for step 1
//logout code
}
test2(){
test1()
//some code here for step 2
//logout code
}
test3(){
test2()
//some code here for step 3
//logout code
}
现在的问题是,虽然 运行 第二个测试用例,它调用了第一个注销用户的函数,我们无法重用代码。 有更好的方法吗?
是的,当然。不要从另一个测试函数调用测试函数,而是为操作创建新函数,如下所示:
private func action1() {
//some code here for step 1
}
private func action2() {
action1()
//some code here for step 2
}
private func action3() {
action2()
//some code here for step 3
}
private func logoutAction() {
//logout code
}
然后,在您的测试中,调用这些操作函数,如下所示:
func test1() {
action1()
logoutAction()
}
func test2() {
action2()
logoutAction()
}
func test3() {
action3()
logoutAction()
}
您应该使用 XCTest
的 setup()
and tearDown()
方法来重置应用程序的状态。
另外,不要从一个测试调用另一个测试。每个测试都应该自行设置,而不是依赖于其他测试。如果测试之间有共同的功能,您可以在测试中创建一个函数 class,您可以从每个测试中调用它。