繁体   English   中英

Swift单元测试无法识别新的类初始化程序

Swift unit test not recognizing new class initializer

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在Swift类上更改了初始化器签名。 我的其他swift类都识别了更改,但是当我更新方法调用时,单元测试类给我一个错误

Extra argument 'bundle' in call

这是我的新初始化器签名:

var vc = ListController(nibName: nil, bundle: nil, contractor: theContractor)

旧的是:

var vc = ListController(nibName: nil, bundle: nil, contractor: theContractor, estimate: theEstimate)

我尝试过的事情:

  1. 清理项目
  2. 从编译源中删除并重新添加了ListController和测试类,以用于单元测试目标和测试目标
  3. 删除了项目的派生数据
  4. 从头开始完全重写了测试类,只是将其放在了新文件名下

截至目前,最重要的是我的测试类无法识别初始化程序签名更改。

ListController和测试类都是用Swift编写的。

甚至自动完成功能也会输入正确的方法签名。 但是,如果对方法签名执行CMD + Space,则会显示“找不到符号”。

1 个回复

从Sergiy Salyuk 在这里

添加指定的初始值设定项时,Swift会使派生类的客户端无法访问继承的初始值设定项。 它看起来类似于C ++中的私有继承,在C ++中,继承的方法/数据被隐式移动到“私有”类部分。 原因很简单:如果有一个自定义的初始化程序,则您的类可能需要该初始化程序来构造“不变式”类。 但是有一个错误:如果您创建派生自UITableViewController的类并添加调用super.init(style :)的自定义初始化程序,它将因使用未实现的初始化程序'init(nibName:bundle :)'而失败

听起来您遇到了基本上相同的问题?

1 C# 单元测试上的类初始化失败

单元测试新手。 我需要启动一个名为 SolidWorks 的应用程序并加载一个文件。 我的初始化不会运行。 我收到错误: 类初始化方法 UnitTestProject1.SolidWorksPartTests.MyClassInitialize 抛出异常。 System.IO.FileNot ...

4 在单元测试中使用初始化程序?

我有一个stdlib初始化器。 在该初始化程序中,我重新打开一些内置的Ember类并添加一些自定义方法。 例如,我将reverseEach添加到Ember.Enumerable和Array 。 它们在应用程序中运行良好,但在测试中我收到“reverseEach:undefined不是函 ...

5 在ember单元测试之前运行初始化程序

我想为路线的方法编写单元测试。 路线/票 它在余烬数据记录上使用copy和reset 。 它们是在初始化期间添加的方法。 初始化/模型 如果我尝试将初始化程序导入单元测试,它甚至不会出现在qunit的模块列表中。 解决方案我最终这样做: ...

6 Xcode,Swift,无法识别的单元测试类/方法

我已经开始了一个简单的SWIFT项目:框架+单元测试。 这个想法原本是为了保持紧迫的TDD周期,但很快就瓦解了:Xcode停止了对单元测试方法的识别,我找不到强制执行单元测试的方法。 每个单元测试类都实现XCTestCase,每个方法名称均以“ test”前缀开头。 代码(经过测试和测 ...

9 初始化之前的单元测试

我想用JUnit测试我的Java代码。 我正在使用Spring的当前版本。 现在,我有一个问题,即单元测试在初始化之后运行,而来自DataInitializer的数据在存储库中。 例如,我想测试ProductManager的此方法: 但是,如果我像这样测试它,它不是一个空列表 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM