在运行时检测代码是运行测试还是生产应用程序的最佳方法是什么。
基本上我想允许一个setter只是为了测试目的。类似的东西:
class LoginService {
private static var LoginService instance = LoginService();
public var sharedInstance: LoginService {
get{
return instance;
}
set{
if(inRunningTests()){
instance = newValue;
} else {
fatalError("This setter is just for testing")
}
}
}
static func isRunningTests() -> Bool {
// ????
}
}
答案 0 :(得分:1)
我的工作解决方案
static var isRunningTests : Bool {
get {
return NSClassFromString("XCTest") != nil;
}
}
答案 1 :(得分:1)
对于您可以使用的单元测试;
func isTesting() -> Bool {
if ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] == nil {
return false
}
return true
}