1

我正在尝试测试我写的课程。我添加了一个新的测试目标,并在其中导入了我要测试的类的目标。我的代码如下所示:

import XCTest
import TargetContainingClass

class Tests: XCTestCase
{
   var myClass = MyClass()

   // tests

}

但是,我收到错误:

'MyClass' is not constructible with '()'

MyClass不包含init()方法,因此不需要用任何东西构造。因此,我不明白我得到的错误。

在这里的任何帮助将不胜感激。

干杯

4

2 回答 2

0

我首先通过提供init() {}@GoZoner 建议的实现来解决我的问题,然后为了摆脱Apple Mach-O Linker (id) Error我必须在构建阶段添加我想要测试的类作为编译源。

于 2014-08-12T12:18:12.570 回答
0

您需要提供以下实现init()

class MyClass {
  init () {}
}

Swift 文档指出:

“Swift provides a default initializer for any structure or base class that provides 
 default values for all of its properties and does not provide at least one initializer
 itself. The default initializer simply creates a new instance with all of 
 its properties set to their default values.”  
    Apple Inc. “The Swift Programming Language.”

但以上显然不是真的;在行动:

  1> class MyClass1 {}
  2> MyClass1()
/var/folders/.../expr.DO8uJ4.swift:2:1: error: 'MyClass1' is not constructible with '()'
MyClass1()
^
  2> class MyClass { 
  3.     init () {} 
  4. }    
  5> MyClass()
$R0: __lldb_expr_3.MyClass = {}
于 2014-08-02T22:08:13.273 回答