Ios 如何对UITextField进行单元测试以查看其是否为空
我尝试对textfield执行单元测试,以检查该textfield是否为空,但在展开可选值时,我得到了错误Ios 如何对UITextField进行单元测试以查看其是否为空,ios,swift,unit-testing,swift4,Ios,Swift,Unit Testing,Swift4,我尝试对textfield执行单元测试,以检查该textfield是否为空,但在展开可选值时,我得到了错误意外发现nil。我用的是警卫,但我不知道我做错了什么 这是我的密码: class AdminPanelViewController: UITableViewController { // Func to insert data from TextFields into CoreData func insertProduct(){ guard let product
意外发现nil。我用的是警卫,但我不知道我做错了什么
这是我的密码:
class AdminPanelViewController: UITableViewController {
// Func to insert data from TextFields into CoreData
func insertProduct(){
guard let productName = productNameTextfield.text, productName != "" else{
SCLAlertView().showError(Constants.nameRequired, subTitle: Constants.messageNameRequired)
return
}
guard let productCategory = productCategoryTextField.text, productCategory != "" else{
SCLAlertView().showError(Constants.categoryRequired, subTitle: Constants.messageCategoryRequired)
return
}
guard let productPrice = productPriceTextfield.text, productPrice != "" else{
SCLAlertView().showError(Constants.priceRequired, subTitle: Constants.messagePriceRequired)
return
}
guard let productDescription = productDescriptionTextView.text, productDescription != ""else{
SCLAlertView().showError(Constants.descriptionRequired, subTitle: Constants.messageDescriptionRequired)
return
}
let product = Product(context: context) // Start inserting in Core Data
let productUUID = UUID().uuidString
product.id = productUUID
product.name = productName
product.category = productCategory
product.price = Float(productPrice)!
product.prodDescription = productDescription
appDelegate.saveContext() // End inserting and save the content in Core Data
resetAllFields()
SCLAlertView().showSuccess(Constants.done, subTitle: Constants.messageProductAdded)
}
}
// UNIT TESTING
import XCTest
@testable import ShoppingLand
class AdminPanelViewControllerTests: XCTestCase {
var collection: AdminPanelViewController!
// Test if ProductNameTextfield is empty
func testIfProductNameTextfieldIsEmpty(){
guard let productNameTextField = collection.productNameTextfield else{
XCTFail("Product name is required !")
return
}
productNameTextField.text = ""
XCTAssertEqual(productNameTextField.text, "Product name is required !")
}
}
如果你正在读这篇文章,非常感谢你抽出时间 在对视图控制器执行任何测试之前,请确保您正在调用xguiapplication().launch()
。只是想知道您是否在XCTestCase生命周期设置()方法中初始化了AdminPanelController。?是否设置了var集合:AdminPanelViewController代码>?有可能collection
可能是nil
?我尝试了你所有的答案。无法使用任何:(您可以添加您的测试代码吗?