如何在Swift中对测试目标显示类型函数(在扩展中定义)?如果我的项目中有以下扩展名:
extension NSData {
class func XOR(inputData: NSData, withKey key: NSData) -> NSData {
...
return NSData(bytes: output.baseAddress, length: inputData.length)
}
}
XOR
函数对主项目可见,但不在测试目标中。我的测试文件中也有@testable import MyModule
。 (另外,有趣的是,扩展中添加的变量对于测试目标是可见的。)
答案 0 :(得分:1)
有三种方法(我记得)可以在测试目标中显示该功能。
<LinearLayout
android:id="@+id/llMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#f5f4f4"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingBottom="20dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="20dp">
<ImageView
android:id="@+id/ivOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/txtOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Hiren"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@android:color/black" />
<RelativeLayout
android:id="@+id/rlRight"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right">
<ImageView
android:id="@+id/ivRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
</LinearLayout>
(通过省略访问修饰符隐式设置)的功能提升为internal
。public
属性导入您的模块。这样做会隐式地将@testable
变量/方法/等推广到internal
,以使其在测试目标中可见。public