我想声明一个只能用于单个特定枚举情况的函数。
例如,我有CustomTextFieldTypes枚举,它有以下情况和函数。
enum CustomTextFieldTypes {
case CardType
case CardNumber
case CardExpiryDate
case CardName
case CCVNumber
func inputCardNumber(cardNumber: String!, cardNumberTextField: XCUIElement?) {
cardNumberTextField?.typeText(cardNumber)
}
func inputCardCCVNumber(cardCCVNumber: String!, cardCCVNumberTextField: XCUIElement?) {
cardCCVNumberTextField?.typeText(cardCCVNumber)
}
}
现在我只想在CustomTextFieldTypes.CardNumber
的情况下调用inputCardNumber(...)
函数。
CustomTextFieldTypes.CardNumber.inputCardNumber(...)
但与此同时我也可以...
CustomTextFieldTypes.CardExpiryDate.inputCardNumber(...) or
CustomTextFieldTypes.CardNumber.inputCardNumber(...)
我只想在CardNumber
的情况下调用inputCardNumber(...)
函数,而不是在另一个情况下调用枚举本身,我该如何实现呢?
提前感谢您的帮助
编辑-这里是我正在做的一些背景。我正在写一个UI测试,它将文本输入到文本字段中。我想让输入代码远离我的测试文件,我开始了"实验"枚举和枚举函数。我想知道我是否可以有一个函数显式地用于枚举情况。从评论中判断,我不能这样做(我在网上查了一下,但没有查到太多)。这不是一个糟糕的架构或任何东西,我只是分裂测试代码..
感谢大家的回复。
3条答案
按热度按时间nukf8bse1#
您可以在
self
上执行一个开关,以便在某些情况下执行某些代码。9o685dep2#
当您只想匹配单个大小写时,无需使用开关:
eqzww0vc3#
不确切知道为什么需要XCUIElements,但执行如下操作
如果确实需要XCUIElement,请将
case CardType(String)
更改为case CardType(String, XCUIElement)
,并更新所有其他代码