Aller au contenu


Photo

Tests et Delegate

XCTest Delegate

  • Please log in to reply
3 réponses à ce sujet

#1 iLandes

iLandes

    Torréfacteur de fèves

  • Membre
  • PipPipPipPipPip
  • 821 messages
  • LocationLandes

Posté 06 janvier 2017 - 19:41

Bonjour à tous,

 

J'affine mes connaissances dans les classes XCTests. J'ai pas mal avancé mais il y a un truc que je ne vois pas du tout comment faire.

 

J'ai une classe qui adopte un protocole et un sytème de déléguation. Je voudrais faire des XCtest pour vérifier que les func du délégate sont bien appelées dans les bon cas :[

 

Voici le genre de classe que je voudrais tester

protocol  PersonDelegate: class {
    func changeEmail(email: String)
    func canNotChangeEmail(invalidString: String)
}

class Person {
    // MARK: - Vars
    var name: String
    var email: String


    weak var delegate: PersonDelegate?

func tryToChangeEmailWith (s: String) {

// bla bla bla
// C'est un bon email, j'averti le délégué
self.delegate?.changeEmail(s)

// bla bla bla
// Ce n'est pas un email valide, j'averti le délégué
self.delegate?.canNotChangeEmail (s)

}

}

    

J'ai essayé de résumé ma classe, mais si ce n'est pas clair n'hésitez pas à me demander des explications…

 

Dans ma class test je voudrais tester que lorsque j'envoie "name@domain.com" le délégué est bien appelé et quand j'envois "nimporteQuoiCommeAdresseEmail" le délégué canNotChangeEmail est bien appelé.

  


--

seb@stien as iLandes

Linked In, Twitter, GitHub, StackOverFlowiLandes.fr

 

Applications : Plages.TVGirondins33Jardiner avec la luneDVRGVMidi Note Converter, FreeIMC.

 

It's not a bug, it's a feature.

Feature : A bug as described by the marketing department (Apple II Reference Manuel 1979 page 180)

 


#2 iLandes

iLandes

    Torréfacteur de fèves

  • Membre
  • PipPipPipPipPip
  • 821 messages
  • LocationLandes

Posté 07 janvier 2017 - 05:18

J'ai trouvé cela :

 

http://www.mokacodin...ft-with-xctest/

 

Mais je ne comprends pas où et comment déclarer la classe SpyDelegate conforme au delegate


--

seb@stien as iLandes

Linked In, Twitter, GitHub, StackOverFlowiLandes.fr

 

Applications : Plages.TVGirondins33Jardiner avec la luneDVRGVMidi Note Converter, FreeIMC.

 

It's not a bug, it's a feature.

Feature : A bug as described by the marketing department (Apple II Reference Manuel 1979 page 180)

 


#3 Céroce

Céroce

    Mouleur de chocolats

  • Contrôleur d'arômes
  • 5 206 messages
  • LocationSaint-Leu-d'Esserent / France

Posté 07 janvier 2017 - 16:02

Le plus simple est de rendre la XCTest conforme au protocole de délégation.
Ajoute une XCTExpectation en propriété pour chaque méthode déléguée.
Dans la méthode déléguée, appelle simplement expectation.fullfill().
Ceci permet de vérifier que la méthode déléguée a bien été appelée.

Je ne vois pas un grand intérêt à déclarer une classe SpyDelegate. (Ça allège éventuellement, la classe de test, mais bon).
  • iLandes aime ceci
RenaudPradenc.com Je suis développeur iOS & Mac indépendant.

#4 iLandes

iLandes

    Torréfacteur de fèves

  • Membre
  • PipPipPipPipPip
  • 821 messages
  • LocationLandes

Posté 08 janvier 2017 - 22:36

Merci pour votre aide, 

 

Je reviendrais la dessus. Finalement je me suis passé du protocol de délégation en utilisant des func avec completion(success: Bool).


--

seb@stien as iLandes

Linked In, Twitter, GitHub, StackOverFlowiLandes.fr

 

Applications : Plages.TVGirondins33Jardiner avec la luneDVRGVMidi Note Converter, FreeIMC.

 

It's not a bug, it's a feature.

Feature : A bug as described by the marketing department (Apple II Reference Manuel 1979 page 180)

 






Also tagged with one or more of these keywords: XCTest, Delegate

0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)