Comments 3
Рекомендую также ознакомиться с OHHTTPStubs
https://github.com/AliSoftware/OHHTTPStubs
https://github.com/AliSoftware/OHHTTPStubs
+1
func testGetSourceUrl() {
let mock = MockUrlSessionProtocol()
let urlStr = "http://riis.com"
let url = URL(string:urlStr)!
// Arrange
stub(mock) { (mock) in
mock.getSourceUrl(apiUrl: urlStr).thenReturn(url)
}
// Act and Assert
XCTAssertEqual(mock.getSourceUrl(apiUrl: urlStr), url)
XCTAssertNotEqual(mock.getSourceUrl(apiUrl: urlStr), URL(string:"http://google.com"))
verify(mock, times(2)).getSourceUrl(apiUrl: urlStr)
}
Такими тестами вы проводите не юнит тестирование класса UrlSession, а проверяете фреймворк Cuckoo на предмет сможет ли он замокать метод или нет.
Правильное юнит тестирование было бы в том случае, если бы вы замокали класс URLSession и заинжектили его в UrlSession и далее проверяли бы логику написанного вами класса UrlSession.
+1
Sign up to leave a comment.
«Мочим» объекты с помощью Cuckoo