如何使用 Xcode 单元测试测试不带参数的 void class 方法

How to test a void class method without arguments with Xcode Unit Test

我有一个 class 有一个没有参数的 void 方法,我想知道这种方法是否可以用单元测试来测试?如果是那么应该测试什么?

上下文:

我有一个 viewcontroller,想展示一个带有取消按钮的操作表。

class LoginVC: UIViewController {
    func showLoginError() {
            let alertController: UIAlertController = UIAlertController.init(title: "Erreur", message: "Nous ne sommes pas parvenu à vous connecter, vérifiez vos informations.", preferredStyle: .alert)
            let closeAction = UIAlertAction.init(title: "Ok", style: .cancel, handler: { (action) in
                self.userAddressField.becomeFirstResponder()
            })
            alertController.addAction(closeAction)
            self.present(alertController, animated: true, completion: nil)
        }
}

您可以测试导致 可观察 行为或对您可以控制的对象具有 效果 的任何事物。

换句话说:最有可能的是,void 方法的目的是在 object/data store/...你可以:

  • 简单查看对应状态before/after调用方法
  • 使用一些模拟框架来确保对给定被测代码的模拟的预期调用确实发生了

理想情况下,您更喜欢第一类测试。如需更多见解,请参阅 here or there。不同的语言,但提供普遍适用的理论背景。