Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tests Unitaire Angular

    7 août 2019 à 11:25:15

    Bonjour.

    Je suis actuellement entrain de faire des test unitaires angular, et autant dire que cela fait plusieurs semaines que je suis dessus, sans succès malgré différents tuto. Donc j'espère pouvoir trouver une quelconque aide par ici... 

    L'initialisation et le début des informations est bonne et n'est pas problématique (juste initialisation des services appeller etc, rien de bien intéressant et compliqué. Mais vient mon cas de test :

                it('should get Affilie objects', () => {
                    service.getSearchAffilies({ nan: 1 }).subscribe(received => {
                        expect(received).toBe(aff);
            
                    });
                    const request = httpMock.expectOne((req: HttpRequest<any>) => {
                        return req.method === 'GET' && req.url.includes(`${SERVER_API_URL}api/affilies/search`);
                    });
                    request.flush(aff);
                });

    Le service a tester :

        getSearchAffilies(req: any): Observable<Affilie[]> {
            const customHttpOptions: {} = createRequestHeadersParams(req);
            return this.http.get<Affilie[]>(SERVER_API_URL + `api/affilies/search`, customHttpOptions);
        }

    A l'heure actuelle, mon test fonctionne. Hors, d'après mes collègues, il marcherait trop bien.

    Le service getSearchAffilies permet de récupérer un affilié en fonction d'une valeur donnée (ici son nan). Le service est censé donc me récupérer l'affilié qui possède le nan 1. Mon cas de test, aff est donc l'affilié au nan1. D'où le fait que mon code soit bon ahah. 

    Hors, si je modifie le paramètre dans mon test, par nan 3 ou même par 'michel' (donc rien a voir), le test sera TOUJOURS bon. 

    Idemment, si je modifie le aff dans "expect(received).toBe(aff);" par "expect(received).toBe('toto);", le test sera AUSSI bon. 


    En clair :

    1. le paramètre testé de la fonction peut être quelconque et ne pas se trouver dans le résultat obtenu -> ça n'impacte pas la véracité de mon test. Celui-ci devrait être faux, mais il reste vrai.

    2. Si je modifie la valeur attendue et que celle-ci est différente de ma valeur obtenue -> ça n'impacte pas la véracité de mon test. Celui-ci devrait être faux, mais il reste vrai.


    Enfin voilà... Si quelqu'un en comprend quelques choses, deux semaines que j'y suis je commence à perdre patience et personne autour de moi n'a déjà fait de test angular, donc je me retrouve seule face à ce soucis...


    • Partager sur Facebook
    • Partager sur Twitter

    Tests Unitaire Angular

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown