Skip to content

Instantly share code, notes, and snippets.

View tifoaudii's full-sized avatar
🎯
Focusing

Tifo Audi A.P tifoaudii

🎯
Focusing
View GitHub Profile
final class SomeViewController: UIViewController {
var isFromHome = false
var isFromCart = false
var isFromProfile = false
private var cards: [CardModel] = []
override func viewDidLoad() {
super.viewDidLoad()
class UserAuthManager {
struct UserProfile {
let username: String
let email: String
let phoneNumber: String
let gender: String
}
static let shared: UserAuthManager = UserAuthManager()
class UserAuthManager {
struct UserProfile {
let username: String
let email: String
let phoneNumber: String
let gender: String
}
static let shared: UserAuthManager = UserAuthManager()
class PokemonLegacyListViewControllerTest: XCTestCase {
func test_whenSuccessFetchPokemons_shouldRenderCollectionCard() {
// Given
let sut = PokemonLegacyListViewController()
sut.service = PokemonServiceSpy(result: .success([
PokemonCardViewModel(imageUrlString: "imageUrl1", selection: {}),
]))
private class PokemonServiceSpy: PokemonService {
let result: Result<[PokemonCardViewModel], Error>
init(result: Result<[PokemonCardViewModel], Error>) {
self.result = result
}
func fetchPokemons(completion: @escaping (Result<[PokemonCardViewModel], Error>) -> Void) {
completion(result)
protocol PokemonService {
func fetchPokemons(completion: @escaping (Result<[PokemonCardViewModel], Error>) -> Void)
}
extension PokemonLegacyService: PokemonService {}
class PokemonLegacyListViewController: UIViewController {
...
var service: PokemonService = PokemonLegacyService.shared
class PokemonLegacyListViewControllerTest: XCTestCase {
func test_whenSuccessFetchPokemons_shouldRenderCollectionCard() {
// Given
let sut = PokemonLegacyListViewController()
sut.service = PokemonServiceSpy(result: .success([
PokemonCardViewModel(imageUrlString: "imageUrl1", selection: {}),
]))
var service: PokemonLegacyService = PokemonLegacyService.shared
override func viewDidLoad() {
super.viewDidLoad()
configureRootView()
configureCollectionView()
service.fetchPokemons { [weak self] result in
guard let self = self else { return }
switch result {
func test_whenSuccessFetchPokemons_shouldRenderCollectionCard() {
// Given
let sut = PokemonLegacyListViewController()
// When
sut.loadViewIfNeeded()
let expectation = expectation(description: "waiting the result")
let waiter = XCTWaiter()
waiter.wait(for: [expectation], timeout: 3.0)
func test_whenSuccessFetchPokemons_shouldRenderCollectionCard() {
// Given
let sut = PokemonLegacyListViewController()v
// When
sut.loadViewIfNeeded()
// Then
XCTAssertEqual(sut.state, .success)