在UITest中,点击登录按钮后,我需要等待两个事件,登录成功后会显示更新或主屏幕,并决定做什么。 文档说,
只有一个-waitForExpectationsWithTimeout:handler:可以在任何给定时间激活,但是 * {期望 - >的多个离散序列等待}可以链接在一起。
所以需要一点点工作,但最终想出来了。
答案 0 :(得分:1)
您可以向谓词添加参数,并在条件之间使用OR。
let skipUpdateButtonPredicate = NSPredicate(format: "%@.exists == 1 OR %@.exists == 1", skipUpdateButton, homeTabBar)
self.expectation(for: skipUpdateButtonPredicate, evaluatedWith: [Any](), handler: nil)
testCase.waitForExpectations(timeout: Constants.loginTimeout,
handler: nil)
然后你可以在这里分支,如果出现了主页或更新:
if skipUpdateButton.exists {
skipUpdateButton.tap()
}
答案 1 :(得分:0)
使用期望时,您可以设置需要满足的次数。
public abstract class BaseEntity
{
Guid objectId = Guid.NewGuid();
public virtual Guid ObjectId { get { return objectId; } }
public override int GetHashCode()
{
return ObjectId.GetHashCode();
}
public override bool Equals(object other)
{
if(other == null)
return false;
if(ObjectId != (other as BaseEntity).ObjectId)
return false;
return ReferenceEquals(this, other);
}
}