我有以下方法,我正在尝试在iOS / Swift中进行单元测试
func apiResponseResults(response: AWSAPIGatewayResponse, sessionObject: Session) {
if response.statusCode == 200 {
// code
} else {
// code
}
}
收到响应后,从我的api
invoke
方法中调用此方法。我想通过创建一个伪造的AWSAPIGatewayResponse
对象进行单元测试。我无法创建
AWSAPIGatewayResponse
对象。有没有一种方法可以在我的单元测试类中初始化此对象。我只想创建一个状态代码为AWSAPIGatewayResponse
和200
的300
对象。任何帮助表示赞赏。 最佳答案
Pradeep,您好,欢迎来到StackOverflow。 👋
您可以使用AWSAPIGatewayResponse
中感兴趣的功能子集定义协议,使AWSAPIGatewayResponse
符合该协议,并让apiResponseResults(response:, session:)
期望该类型的值。
protocol Response {
var statusCode: Int { get }
}
extension AWSAPIGatewayResponse: Response { }
func apiResponseResults(response: Response, sessionObject: Session) { ... }
在测试中,您可以定义一个符合
Response
的测试double,并将其用作方法的输入参数。struct TestResponse: Response {
let statusCode: Int
}
// Use it like this
let response = TestResponse(statusCode: 200)
希望这可以帮助。