当前位置: 首页 > 面试题库 >

添加到测试目标时的IBDesignable错误

后学
2023-03-14
问题内容

我有一个用var UIButton实现的简单子类:IBDesignableIBInspectable

@IBDesignable class Button: UIButton {
    @IBInspectable var borderColor: UIColor = UIColor.whiteColor() {
        didSet { layer.borderColor = borderColor.CGColor }
    }
}

我没有在框架中使用它,它正在Interface Builder中按预期工作,但是,一旦将此子类添加到Tests目标中,它就会停止实时渲染,并且出现以下错误:

Main.storyboard: error: IB Designables: Failed to update auto layout status: dlopen(TestTests.xctest, 1): Library not loaded: @rpath/XCTest.framework/XCTest
Referenced from: TestTests.xctest
Reason: image not found

Main.storyboard: error: IB Designables: Failed to render instance of Button: dlopen(TestTests.xctest, 1): Library not loaded: @rpath/XCTest.framework/XCTest
Referenced from: TestTests.xctest
Reason: image not found

如果删除IBDesignableIBInspectablevar,错误就会消失-不幸的是,Interface Builder中的实时渲染也会消失。

如何针对IBDesignable没有这些错误的课程进行测试?


问题答案:

起初,我认为这是Xcode中的一种错误。以下是
我发现的解决方法:

第1步

将您的类和属性标记为public

@IBDesignable public class Button: UIButton {
    @IBInspectable public var borderColor: UIColor = UIColor.whiteColor() {
        didSet { layer.borderColor = borderColor.CGColor }
    }

    @IBInspectable public var borderWidth:CGFloat = 0.0 {
        didSet { layer.borderWidth = borderWidth }
    }
}

步骤 2

从“测试”模块导入应用程序模块。

例如,假设您的应用程序被命名为MyGreatApp, in your
MyGreatAppTests/MyGreatAppTests.swift:

import UIKit
import XCTest
import MyGreatApp

class MyGreatAppTests: XCTestCase {

    func testExample() {
        let btn = Button()
        btn.borderColor = UIColor.redColor()
        XCTAssertEqual(UIColor(CGColor:btn.layer.borderColor), UIColor.redColor(), "borderColor")
    }
}

您无需将“ Button.swift”添加到“测试”目标。

步骤3(适用于Swift)

在情节提要中,为任何自定义
类显式选择模块MyGreatApp,而不是让Xcode使用当前模块。



 类似资料:
  • 我已经尝试使用添加目标在Xcode 5上添加测试目标- 2013-09-24 10:43:14.446堆栈交换[48895:c07]加载错误/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp fjegcztcnwqdfdimhonqzzqpdwr/Build/Products/Debug iPhone模拟器/堆栈交换测试。xc

  • 我想为我的应用程序创建一个测试目标 在添加测试目标之前,应用程序构建并运行finebr>。当我添加测试目标时,这是我尝试构建时显示的内容 null 导出路径=/applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/usr/bin:/usr/bin:/usr/sbin:/sbin“ 错误:无法打

  • 我得到错误每当添加实现'com.google.firebase: Firebase分析: 17.2.2'和应用插件:'com.google.gms.google服务'到应用程序 这就是我得到的错误

  • 我在测试一个android项目时遇到了麻烦。 我有一个没有源的调试apk。“开始activity”类是 我把它安装在 然后使用以下build.gradle和androidmanifest.xml创建一个新项目 null null 但当我运行测试时,它报告找不到“com.restfriedchicken.android.mainActivity”: 看来仪器没有成功?

  • 添加测试 npm install --save-dev ava npm install --save-dev sinon npm install --save-dev superkoa npm install --save-dev zombie mkdir test touch test/test.js 将下面代码copy进去 import test from 'ava' import sup

  • 我有一个多模块maven项目,在同一个文件夹(src/test/java)中包含集成和单元测试。集成测试标记为。我想以以下设置结束: 如果我运行,我希望所有测试都能编译,但我不想执行任何测试 重要的一点是,我希望在中配置它,而没有任何额外的命令行参数。 目前,我在我的父母pom中提出了以下设置。xml,其中唯一的问题是#1,其中执行所有测试: 所有子模块的pom中都有以下插件配置。xml,我认为应