出于明显的原因,我不想用测试代码污染我的生产代码。我正在尝试使用XCode的ui测试框架。在运行时,我想用一个仅存在于我的测试目标中的类替换其中一个类。
知道我该如何实现吗?
最佳答案
您需要所谓的测试模拟。
您可以在测试文件中创建一个模拟类,以扩展您希望模拟的类。
class MockHttp extends HttpService {
var getWasCalledCount = 0
override func get(request: URLRequest) {
getWasCalledCount = getWasCalledCount + 1
}
}
然后在您的测试中,使用模拟修改您的原始类属性(我喜欢在setUp方法中使用它)
override func setUp() {
var mockHttp = MockHttp()
classIWantToInjectWithMock = ClassIWantToInjectWithMock(http: mockHttp)
}
我希望这有帮助!祝你今天愉快!