当前位置: 首页 > 知识库问答 >
问题:

如何用Xcode单元测试测试一个没有参数的void类方法

祁俊喆
2023-03-14
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)
        }
}

共有1个答案

储修谨
2023-03-14

您可以测试任何导致可观察的行为或对您可以控制的对象有影响的东西。

换句话说:最有可能的是,void方法的意图是改变对象/数据存储/...因此,从这个意义上说,您可以:

  • 只需在调用方法之前/之后检查相应的状态
  • 使用一些模拟框架来确保对给定给测试代码的模拟进行预期的调用
 类似资料:
  • 我正在为我的程序创建一个单元测试。我有一个void方法,它接受五个参数,然后将这些参数转换成一个闭包,并将其传递给另一个服务,然后将其转换成电子邮件并发送。我唯一关心的是这封邮件的正文,它存储在传递给这个函数的一个参数中。有没有可能在不改变我的程序设计的情况下验证这个论点? 编辑:作为对下面答案的回应,我在测试中插入了一个spock样式的模拟,但我认为我的语义不对,因为value存储的是NULL。

  • 我从来没有使用过单元测试,我了解它的用途,但我真的不知道何时以及如何使用它。 我想知道什么时候值得使用单元测试,也许可以用一些例子。

  • Java 8,但这是一个通用的单元测试问题,它(很可能)是与语言无关的。 编写JUnit测试的语法很容易,但是决定要编写什么测试以及如何测试主/生产代码是我发现的最大挑战。在阅读单元测试最佳实践时,我一遍又一遍地听到同样的事情: 测试合同 我相信这个想法是,单元测试不应该是脆弱的,如果方法的实现发生变化,它不应该被破坏。该方法应定义输入的协定 - 假设我有以下方法: 所以在这里,我们有一个方法,我

  • 问题内容: 这可能吗?我尝试过,但EasyMock抱怨时间必须> = 1 问题答案: 我设法提出了一个解决方案:

  • 为了让单元测试跑一个批处理的任务,这个框架必须加载这个任务的ApplicationContext,两个注解的触发方式: @RunWith(SpringJUnit4ClassRunner.class):表明这个类需要使用Spring的测试工具 @ContextConfiguration(locations = {…}):表明哪些xml文件包含ApplicationContext @RunWith

  • 我有一个混合了objective-c和Swift的项目,我试图为它编写单元测试。我的项目名称是:Alphaproject我的产品模块名称是:Alphaproject我在我的主要目标(Alphaproject)中设置为YES Defines module,并设置为YES EnableTestability,以便仅在此同一目标中进行调试。 在我的测试类中,我尝试导入我的产品模块名称: @可测试导入项目