swift Xcode单元测试:无法将“Person”类型的值转换为预期的参数类型“Person”
Posted
技术标签:
【中文标题】swift Xcode单元测试:无法将“Person”类型的值转换为预期的参数类型“Person”【英文标题】:swift Xcode unit test: Cannot convert value of type "Person" to expected argument type "Person" 【发布时间】:2015-10-21 03:25:13 【问题描述】:我正在尝试编写一个单元测试类来测试我的自定义类。当我尝试使用自定义对象作为输入变量调用自定义类中的方法时,我得到: '无法将“Person”类型的值转换为预期的参数类型“Person”。 “Person”是类,继承自 NSManagedObject,输入对象是从其中创建的。我对采用其他值类型的其他方法没有任何问题。该方法工作正常。测试班是唯一抱怨这一点的人。这是错误还是限制?有什么建议可以让我更深入地研究这个问题吗?
【问题讨论】:
可能是命名空间问题。在您的核心数据模型中,当您选择 Person 实体时,您是否在身份检查器中指定了模块名称?这可能具有我之前遇到过这个问题。事实证明,被测系统(在我的例子中,它是一个调用对象的服务;可能是您的示例中的 PersonService)没有 Target 对测试项目的成员资格。我只是单击了 .swift 文件,并确保检查了主项目和测试项目。
希望这会有所帮助!
【讨论】:
谢谢。我也会检查一下。 在我的例子中,问题是有问题的对象在框架和服务中都有目标成员资格。但是,它只需要框架中的目标成员身份,因为服务导入了框架。 @Andrew 谢谢!对我来说就是这样。我的主要项目目标文件也针对我的测试,并使用“@testable”导入它们。主项目文件应该只针对主项目,反之亦然。 @Andrew 你救了我的命,你能用这个答案再次回答我最近的帖子吗?以上是关于swift Xcode单元测试:无法将“Person”类型的值转换为预期的参数类型“Person”的主要内容,如果未能解决你的问题,请参考以下文章