Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save feighter09/a4a2e6fdb594d3652a4696468d965886 to your computer and use it in GitHub Desktop.
Save feighter09/a4a2e6fdb594d3652a4696468d965886 to your computer and use it in GitHub Desktop.
@testable import NetworkingEvolution
import SwiftyJSON
import XCTest
class ViewControllerTests: XCTestCase {
var viewController: ViewController!
override func setUp()
{
super.setUp()
viewController = ViewController()
}
}
// MARK: Tests
extension ViewControllerTests {
func test_successNetworkResponse_showsUsername()
{
viewController.fetchUser = MockSuccessFetchUser()
viewController.loadViewIfNeeded()
XCTAssertEqual(viewController.label.text, "Username: feighter09")
}
func test_failureNetworkResponse_showsErrorMessage()
{
viewController.fetchUser = MockFailureFetchUser()
viewController.loadViewIfNeeded()
XCTAssertEqual(viewController.label.text, "Request failed")
}
}
// MARK: - Mocks
private class MockSuccessFetchUser: FetchUser {
override func perform(username: String, callback: (User?, ErrorType?) -> Void)
{
callback(User(name: username), nil)
}
}
private class MockFailureFetchUser: FetchUser {
override func perform(username: String, callback: (User?, ErrorType?) -> Void)
{
callback(nil, NSError(domain: "", code: -1, userInfo: nil))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment