Pull to refresh

Comments 3

Рекомендую также ознакомиться с OHHTTPStubs
https://github.com/AliSoftware/OHHTTPStubs
   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.
Sign up to leave a comment.

Articles