Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4647 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  25043  25044  25045  ..  27171  27172  27173  27174  27175  27176
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2429794
el muchach​o
Comfortably Numb
Posté le 20-10-2022 à 07:03:30  profilanswer
 

Reprise du message précédent :

hephaestos a écrit :


En l'occurrence : foo(x) est une fonction assez simple. On pensait que x avait certaines propriétés, alors on l'a écrite d'une certaine façon.  
 
John a passé 2 jours à trouver pourquoi ça marchait pas, à identifier les vraies propriétés de x et à corriger foo. Et maintenant il propose d'écrire un test unitaire qui vérifie que foo marche bien avec x tel qu'il est passé.
 
Sauf que le problème n'était pas qu'on s'était trompé sur foo, mais sur x. Donc il faut tester foo en conjonction avec la fonction qui l'appelle, et qui crée x, pour faire un test qui sert à quelque chose.


Une variante de ce que je viens d'écrire juste au-dessus, avec foo comme décodeur et et la fonction qui crée x en encodeur, quoi, si foo et l'autre fonction sont à des interfaces.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 20-10-2022 à 07:03:30  profilanswer
 

n°2429795
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 20-10-2022 à 07:04:45  profilanswer
 

el muchacho a écrit :


C'est quoi une pyramide de tests ???

 

Beaucoup de tests unitaires (ne testent qu'une seule fonction pure, dont on contrôle complètement l'environnement y intégrant des mocks, typiquement), moins de tests fonctionnels, et une poignée de tests d'intégration.

n°2429796
Flaie
Posté le 20-10-2022 à 07:12:27  profilanswer
 

Write tests. Not too many. Mostly integration.

n°2429797
el muchach​o
Comfortably Numb
Posté le 20-10-2022 à 07:12:48  profilanswer
 

R3g a écrit :


Je savais qu’il fallait la demander (ou que quelqu’un la demande pour toi), pas qu’il fallait payer. C’est d’autant plus ridicule que derrière ça ouvre droit à une rente (donc on te rend ton argent).


Enfin la rente est complètement symbolique et ne rentabilise pas l'investissement initial (6,10€/an pour le chevalier et 9,15€/an pour l'officier en 2010).

Message cité 1 fois
Message édité par el muchacho le 20-10-2022 à 07:16:45

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2429798
el muchach​o
Comfortably Numb
Posté le 20-10-2022 à 07:14:16  profilanswer
 

hephaestos a écrit :


Beaucoup de tests unitaires (ne testent qu'une seule fonction pure, dont on contrôle complètement l'environnement y intégrant des mocks, typiquement), moins de tests fonctionnels, et une poignée de tests d'intégration.


ok, je vois.
Perso ma "pyramide" se limite aux tests U et aux tests d'intégration.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2429799
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 20-10-2022 à 07:23:40  profilanswer
 

Flaie a écrit :

Write tests. Not too many. Mostly integration.


Ah oui voilà, merci pour les ref, je savais bien qu'on avait écrit contre la pyramide des tests depuis...
 
Au fond j'ai rien contre la pyramide des tests, je pense qu'elle est toujours valable ; mais c'est une propriété émergente, certainement pas un objectif ou un argument quand on est pas d'accord sur quel test faire.

n°2429800
nucl3arfl0
Better Call Saul
Posté le 20-10-2022 à 07:29:57  profilanswer
 

De l'autre côté, quand t'es sur une appli Web où pour chaque classe de tests tu te tapes du spin up de db avec des fixtures alors que tu es juste en train de t'assurer que le contrat renvoyé au client est OK dans tes différents scénarios, ça fait vraiment chier.
Oui pour les tests d'intégration mais si c'est bien découplé, tu n'as pas toujours besoin d'avoir à te taper la persistence et tout le bordel derrière.

 

Souvent on se retrouve dans des tests d'intégration parce que les détails d'implémentation vont trop loin (pas assez découplé) et qu'en tests unitaires c'est l'orgie.

 

Bon après j'ai découvert hier qu'un gars de mon équipe ne savait pas qu'on pouvait "patcher" des appels pour se concentrer sur le scénario essentiel (ça évite des gros mocks bien dégueulasses inmaintenables)

n°2429801
Flaie
Posté le 20-10-2022 à 07:31:04  profilanswer
 

hephaestos a écrit :


Ah oui voilà, merci pour les ref, je savais bien qu'on avait écrit contre la pyramide des tests depuis...
 
Au fond j'ai rien contre la pyramide des tests, je pense qu'elle est toujours valable ; mais c'est une propriété émergente, certainement pas un objectif ou un argument quand on est pas d'accord sur quel test faire.


Moi je pense qu'elle l'est de moins en moins.
 
Martin Fowler le dit lui même: https://martinfowler.com/bliki/TestPyramid.html
 

Citation :

The pyramid is based on the assumption that broad-stack tests are expensive, slow, and brittle compared to more focused tests, such as unit tests. While this is usually true, there are exceptions. If my high level tests are fast, reliable, and cheap to modify - then lower-level tests aren't needed.


 
Il me semble qu'en 2022 cela n'est plus vrai, grace aux évolutions du langage, des frameworks et du tooling.

n°2429802
Dion
Acceuil
Posté le 20-10-2022 à 07:36:36  profilanswer
 

Flaie a écrit :


Moi je pense qu'elle l'est de moins en moins.
 
Martin Fowler le dit lui même: https://martinfowler.com/bliki/TestPyramid.html
 

Citation :

The pyramid is based on the assumption that broad-stack tests are expensive, slow, and brittle compared to more focused tests, such as unit tests. While this is usually true, there are exceptions. If my high level tests are fast, reliable, and cheap to modify - then lower-level tests aren't needed.


 
Il me semble qu'en 2022 cela n'est plus vrai, grace aux évolutions du langage, des frameworks et du tooling.


Attention à ne pas être trop précis, tu vas avoir la guilde des software crafts(wo)men qui te tombe dessus si tu dis autre chose que "ça dépend" ou "ni trop, ni trop peu"


---------------
It is not called show art
n°2429803
Flaie
Posté le 20-10-2022 à 07:39:15  profilanswer
 

Dion a écrit :


Attention à ne pas être trop précis, tu vas avoir la guilde des software crafts(wo)men qui te tombe dessus si tu dis autre chose que "ça dépend" ou "ni trop, ni trop peu"


Je fais parti de la guilde des SC justement pour pouvoir être précis [:flaie:8]

mood
Publicité
Posté le 20-10-2022 à 07:39:15  profilanswer
 

n°2429804
DDT
Few understand
Posté le 20-10-2022 à 07:51:33  profilanswer
 

hephaestos a écrit :


En l'occurrence : foo(x) est une fonction assez simple, 20 lignes de codes. On pensait que x avait certaines propriétés, alors on l'a écrite d'une certaine façon.

 

John a passé 2 jours à trouver pourquoi ça marchait pas, à identifier les vraies propriétés de x et à corriger foo. Et maintenant il propose d'écrire un test unitaire qui vérifie que foo marche bien avec x tel qu'il est passé.

 

Sauf que le problème n'était pas qu'on s'était trompé sur foo, mais sur x. Donc il faut tester foo en conjonction avec la fonction qui l'appelle, et qui crée x, pour faire un test qui sert à quelque chose.

 

Je m'en fous que foo soit publique, le contrat de foo n'a aucun sens hors de son contexte, ça ne sert à rien de le tester, la pyramide des tests est inutile dans ce contexte.


Property based testing enters the chat. :o

 

Bon d'un côté je vois pas a priori ce qui empêche un test unitaire avec des valeurs cohérentes de x, de l'autre si c'est appelé plus haut, autant faire d'une pierre deux coups en effet. :jap:

 

Perso pour nos services web j'écris quasiment que des tests point à point.


---------------
click clack clunka thunk
n°2429806
gatsu35
Blablaté par Harko
Posté le 20-10-2022 à 07:53:55  profilanswer
 

J'étais en train de faire un JDD pour un store locator,

 

et j'avais juste dans mon exemple "city" et "country",
Et j'avais besoin des latitudes et longitudes, j'ai créé 2, 3 use case juste avec avant des lat,lon

 

Et après j'ai regardé et Github copilot me proposait les latitudes et longitudes des villes que je mettais, mêmes des bleds pommés :

 

https://img.super-h.fr/images/2022/10/20/6dac211d644ffbe4cd08577116ce8900.png https://img.super-h.fr/images/2022/10/20/b35ed27ef956f703c6cebcaea3877304.png

Message cité 2 fois
Message édité par gatsu35 le 20-10-2022 à 07:54:16

---------------
Blablaté par Harko
n°2429807
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 20-10-2022 à 07:54:30  profilanswer
 

nucl3arfl0 a écrit :

De l'autre côté, quand t'es sur une appli Web où pour chaque classe de tests tu te tapes du spin up de db avec des fixtures alors que tu es juste en train de t'assurer que le contrat renvoyé au client est OK dans tes différents scénarios, ça fait vraiment chier.
Oui pour les tests d'intégration mais si c'est bien découplé, tu n'as pas toujours besoin d'avoir à te taper la persistence et tout le bordel derrière.

 

Souvent on se retrouve dans des tests d'intégration parce que les détails d'implémentation vont trop loin (pas assez découplé) et qu'en tests unitaires c'est l'orgie
 


J'adore ça aussi les suites de tests unitaires ultra rapide. C'est juste pas un objectif en soit, il faut qu'ils servent à quelque chose.

n°2429808
Flaie
Posté le 20-10-2022 à 07:57:15  profilanswer
 

gatsu35 a écrit :

J'étais en train de faire un JDD pour un store locator,

 

et j'avais juste dans mon exemple "city" et "country",
Et j'avais besoin des latitudes et longitudes, j'ai créé 2, 3 use case juste avec avant des lat,lon

 

Et après j'ai regardé et Github copilot me proposait les latitudes et longitudes des villes que je mettais, mêmes des bleds pommés :

 

https://img.super-h.fr/images/2022/ [...] ce8900.png https://img.super-h.fr/images/2022/ [...] 877304.png


C'est beau, sinon pour éviter d'écrire ça a la main, tu peux utiliser des tooling comme faker.js (et équivalents sur autres langages).

 
hephaestos a écrit :


J'adore ça aussi les suites de tests unitaires ultra rapide. C'est juste pas un objectif en soit, il faut qu'ils servent à quelque chose.


Exact :jap:

Message cité 1 fois
Message édité par Flaie le 20-10-2022 à 07:59:47
n°2429809
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 20-10-2022 à 08:00:03  profilanswer
 

Flaie a écrit :


Moi je pense qu'elle l'est de moins en moins.

 

Martin Fowler le dit lui même: https://martinfowler.com/bliki/TestPyramid.html

 
Citation :

The pyramid is based on the assumption that broad-stack tests are expensive, slow, and brittle compared to more focused tests, such as unit tests. While this is usually true, there are exceptions. If my high level tests are fast, reliable, and cheap to modify - then lower-level tests aren't needed.

 

Il me semble qu'en 2022 cela n'est plus vrai, grace aux évolutions du langage, des frameworks et du tooling.


Ici c'est toujours vrai, en C++ en tout cas les tests pas unitaires sont lents et gourmands en ressources.

n°2429810
flo850
moi je
Posté le 20-10-2022 à 08:01:54  profilanswer
 
n°2429811
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 20-10-2022 à 08:03:22  profilanswer
 

DDT a écrit :


Property based testing enters the chat. :o

 

Bon d'un côté je vois pas a priori ce qui empêche un test unitaire avec des valeurs cohérentes de x, de l'autre si c'est appelé plus haut, autant faire d'une pierre deux coups en effet. :jap:

 

Perso pour nos services web j'écris quasiment que des tests point à point.

 

Du coup ce que j'en dis :
- le test fonctionnel de bar qui appelle foo : obligatoire parce que c'est ce qui aurait permis de trouver le bug plus tôt, on aurait dû l'avoir avant.
- le test unitaire de foo : si ça te chante, que tu fais du TDD fais-toi plaisir. Franchement si ils je sont pas là ça ne m'empêchera pas de dormir.

 

Dit un peu autrement : quand on rajoute un test après avoir corrigé un bug, il faut que ce soit un test qu'on aurait été capable d'écrire avant d'avoir passé 2 jours à comprendre le bug. Si on se contente d'utiliser les connaissances qu'on a du vrai contrat pour changer le test unitaire, c'est de la merde. (Ok, ça rend le contrat explicite, c'est pas complétement inutile...)


Message édité par hephaestos le 20-10-2022 à 08:07:58
n°2429812
Hermes le ​Messager
Breton Quiétiste
Posté le 20-10-2022 à 08:12:47  profilanswer
 

gatsu35 a écrit :

J'étais en train de faire un JDD pour un store locator,
 
et j'avais juste dans mon exemple "city" et "country",  
Et j'avais besoin des latitudes et longitudes, j'ai créé 2, 3 use case juste avec avant des lat,lon
 
Et après j'ai regardé et Github copilot me proposait les latitudes et longitudes des villes que je mettais, mêmes des bleds pommés :  
 
https://img.super-h.fr/images/2022/ [...] ce8900.png https://img.super-h.fr/images/2022/ [...] 877304.png


 
Tu veux dire ceux qui ont des Apple store, ou des vergers avec pommiers ?  :D


---------------
Expert en expertises
n°2429813
DDT
Few understand
Posté le 20-10-2022 à 08:13:21  profilanswer
 

Hepha: y a pas moyen de changer la visibilité de la méthode, histoire que ça soit plus clair?

Message cité 1 fois
Message édité par DDT le 20-10-2022 à 08:13:52

---------------
click clack clunka thunk
n°2429814
Flaie
Posté le 20-10-2022 à 08:19:07  profilanswer
 

hephaestos a écrit :


Ici c'est toujours vrai, en C++ en tout cas les tests pas unitaires sont lents et gourmands en ressources.


Dommage

n°2429815
mechkurt
Posté le 20-10-2022 à 08:51:45  profilanswer
 

R3g a écrit :

Je savais qu’il fallait la demander (ou que quelqu’un la demande pour toi), pas qu’il fallait payer. C’est d’autant plus ridicule que derrière ça ouvre droit à une rente (donc on te rend ton argent).


Vu le montant va falloir l'obtenir jeune et vivre vieux pour rembourser ! ^^

el muchacho a écrit :

Enfin la rente est complètement symbolique et ne rentabilise pas l'investissement initial (6,10€/an pour le chevalier et 9,15€/an pour l'officier en 2010).


This


---------------
D3
n°2429816
Dion
Acceuil
Posté le 20-10-2022 à 08:59:32  profilanswer
 

Vous êtes vraiment en train de faire des calculs de ROI financiers directs sur la légion d'honneur ?  [:pingouino]


---------------
It is not called show art
n°2429817
Flaie
Posté le 20-10-2022 à 09:00:18  profilanswer
 

J'aimerais bien la demander pour le coup, ça fait chouette sur le costard en allant à la cogip

n°2429818
Dion
Acceuil
Posté le 20-10-2022 à 09:01:42  profilanswer
 

Flaie a écrit :

J'aimerais bien la demander pour le coup, ça fait chouette sur le costard en allant à la cogip


Bah vas y, à coup de réduction de temps d'exécution des tests d'une cogip dans un paradis fiscal ça passe peut être  [:cosmoschtroumpf]


---------------
It is not called show art
n°2429819
Flaie
Posté le 20-10-2022 à 09:05:13  profilanswer
 

Dion a écrit :


Bah vas y, à coup de réduction de temps d'exécution des tests d'une cogip dans un paradis fiscal ça passe peut être  [:cosmoschtroumpf]


Les implications pour l'europe sont énormes.

n°2429820
koskoz
They see me trollin they hatin
Posté le 20-10-2022 à 09:06:50  profilanswer
 

Flaie a écrit :


Moi je pense qu'elle l'est de moins en moins.

 

Martin Fowler le dit lui même: https://martinfowler.com/bliki/TestPyramid.html

 
Citation :

The pyramid is based on the assumption that broad-stack tests are expensive, slow, and brittle compared to more focused tests, such as unit tests. While this is usually true, there are exceptions. If my high level tests are fast, reliable, and cheap to modify - then lower-level tests aren't needed.

 

Il me semble qu'en 2022 cela n'est plus vrai, grace aux évolutions du langage, des frameworks et du tooling.

 

Ça reste vrai dans la majorité des cas, les TU sont beaucoup plus rapide que les autres types de tests.


---------------
Twitter
n°2429821
Dion
Acceuil
Posté le 20-10-2022 à 09:07:45  profilanswer
 

Flaie a écrit :


Les implications pour l'europe sont énormes.


Force pas trop dès le début, il faut aussi penser à la montée en grade et en garder sous le pieds !


---------------
It is not called show art
n°2429822
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 20-10-2022 à 09:09:03  profilanswer
 

DDT a écrit :

Hepha: y a pas moyen de changer la visibilité de la méthode, histoire que ça soit plus clair?


Non on peut pas, c'est le framework qui l'impose. Après je pense que c'est un pattern valide : on sépare un module en deux modules Foo et Bar, Foo est utilisé par Bar. Foo n'a pas vocation et est sans doute inutile sans Bar, je trouve souvent judicieux de ne tester que Bar, sans mocker Foo.
 
Un cas particulièrement courant dans notre équipe c'est quand Foo gère les accès en base de données, et expose des méthode de lecture et écriture. Ou alors, en frontend on utilise ngRX, c'est que ça : 3 modules (selecteurs, réducteurs et effets) qui sont tous les 3 utilisés dans l'application qui s'en sert pour gérer son état.
 
Si on veut n'écrire que des test unitaires, on va test Bar en mockant Foo d'une part, et Foo d'autre part. Ce que j'en pense :
- Tester Foo ne sert probablement à rien si on teste Bar sans mocker Foo (dans les faits, selon la complexité de Foo ça peut quand même être justifié).
- Mocker Foo ne sert qu'à rendre les tests plus rapide, mais il les rend moins utiles du même coup, et pas plus facile à écrire ni plus expressifs. Si ça ne tenait qu'à moi, je ne le ferais jamais. Que des tests qui ont une vraie base de donnée (de tests), qui mettent des secondes à s'exécuter. De toutes façon je suis un boomer, j'ai un clavier en US INTL avec touches mortes, j'appuie deux fois pour faire un guillemet, je suis pas à ça près. (En vrai je sais que c'est pas bien de dire ça, mais je défonce tellement la plupart des pinpins à barbe collier sur toutes les métriques de productivité, j'arrive pas à prendre cet argument au sérieux.)


Message édité par hephaestos le 20-10-2022 à 09:20:44
n°2429823
Dion
Acceuil
Posté le 20-10-2022 à 09:09:44  profilanswer
 

koskoz a écrit :


 
Ça reste vrai dans la majorité des cas, les TU sont beaucoup plus rapide que les autres types de tests.


Tu dois être trop jeune pour avoir connu les tests avant les containers voir la virtu  :D  
Sur des tests bout en bout on a du réduire de trois ou quatre ordre de grandeur  :D


---------------
It is not called show art
n°2429824
koskoz
They see me trollin they hatin
Posté le 20-10-2022 à 09:11:18  profilanswer
 

Dion a écrit :


Tu dois être trop jeune pour avoir connu les tests avant les containers voir la virtu :D
Sur des tests bout en bout on a du réduire de trois ou quatre ordre de grandeur :D

 

Non, j'ai connu, j'ai de plus en plus de cheveux blancs [:toum_toum]

 

Mais même avec les containers mon propos reste vrai, les TU sont plus rapides que tous les autres types de tests.


---------------
Twitter
n°2429825
Flaie
Posté le 20-10-2022 à 09:20:56  profilanswer
 

koskoz a écrit :


 
Ça reste vrai dans la majorité des cas, les TU sont beaucoup plus rapide que les autres types de tests.


Le temps d'exécutions des TI à réduit drastiquement néanmoins.

n°2429826
koskoz
They see me trollin they hatin
Posté le 20-10-2022 à 09:32:22  profilanswer
 

koskoz a écrit :

 

Non, j'ai connu, j'ai de plus en plus de cheveux blancs [:toum_toum]

 

Mais même avec les containers mon propos reste vrai, les TU sont plus rapides que tous les autres types de tests.

 

Je vais étoffer mon propos : pour moi ce n'est pas parce que les tests fonctionnels ainsi que d'intégration sont plus rapide qu'avant que c'est une raison pour écrire moins de TU.

 

Les TU sont généralement purement métier, c'est tout autant ton contrat que ta doc.

 

Par contre je rejoins nuclearflo sur le fait que maintenant la majorité des devis sont du dev web et que finalement tu as très peu de métier, la plupart du temps on manipule de la donnée en faisant confiance au framework et à l'ORM, les TU sont de facto moins nombreux (sauf si vous faites comme chez nous, que vous mockez la terre entière pour produire des TU qui ne restent rien mais sont un enfer lord d'un refacto [:belzedar:4])


---------------
Twitter
n°2429827
koskoz
They see me trollin they hatin
Posté le 20-10-2022 à 09:33:21  profilanswer
 

Flaie a écrit :


Le temps d'exécutions des TI à réduit drastiquement néanmoins.

 

Tout à fait. Mais ça reste très coûteux à écrire je trouve.


---------------
Twitter
n°2429828
gatsu35
Blablaté par Harko
Posté le 20-10-2022 à 09:37:33  profilanswer
 

Flaie a écrit :


C'est beau, sinon pour éviter d'écrire ça a la main, tu peux utiliser des tooling comme faker.js (et équivalents sur autres langages).

 


 

Je connais faker, j'avais même fait une extension npm qui rajoutait du sucre par dessus pour générer des masses de données avec des ratios.

 

Genre si je voulais générer des peoples mais genre 24% de femmes et 64% d'hommes. En gros on pouvais faire des rations sur des groupes de valeurs, c'était assez utile pour une app avec des graphs

 

Mais dans mon contexte j'avias juste besoin de 10 "stores" afin de pouvoir les afficher sur une map en attendant la liste complète.

 

Edit :
Je sors les gros outils que lorsque je vois que je commence à en avoir vraiment besoin.
faker je pense que je le sortirais en cours de route si vraiment c'est nécessaire, mais même pas sûr.
Et un autre truc qui me fait chier ce sont les mecs qui rajoutent des libs de date alors qu'il n'y a qu'une simple putain de conversion de date à faire dans leur putain d'application. Alors on a eu moment.jd, date.jd, maintenant c'est dayjs, le plus petit, mais franchement, à partir du moment où la date qui t'es envoyée depuis les API c'est au format string ISO standard, et que toi tu dois juste formater en pouvant utiliser des DD/MM/JJ mm:ss:hh bah ya vraiment pas besoin de sortir dayjs et une fonction en 10 lignes fait tres bien le taf.


Message édité par gatsu35 le 20-10-2022 à 10:45:14

---------------
Blablaté par Harko
n°2429829
Flaie
Posté le 20-10-2022 à 09:39:50  profilanswer
 

koskoz a écrit :


 
Tout à fait. Mais ça reste très coûteux à écrire je trouve.


Ça dépends des langages / frameworks, la stack que j'utilise c'est pas bien compliqué

n°2429830
masklinn
í dag viðrar vel til loftárása
Posté le 20-10-2022 à 09:45:34  profilanswer
 

koskoz a écrit :

Je vais étoffer mon propos : pour moi ce n'est pas parce que les tests fonctionnels ainsi que d'intégration sont plus rapide qu'avant que c'est une raison pour écrire moins de TU.
 
Les TU sont généralement purement métier


C’est plus l’inverse pour moi, tes flux métiers ils sont dans les TI, c’est ça qui teste le truc final / demandé.
 
Le TU, c’est pour des tests techniques de sous-composants (~détails d’implémentation), généralement parce-que faire tourner le TI 100 fois avec des variations mineures c’est chiant et lourd quand tu peux TU le composant pour regarder si tous ses edge cases sont comme tu veux (niveau TU tu peux juste prendre des représentants des classes d’erreur).
 
Tu peux même vouloir tester des cas limites qui sont pas actuellement atteignable via TI, mais des changements futurs pourraient les exposer et tu veux t’assurer que le comportement est régulier même si aucun TI n’est fait à ce moment.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2429831
Dion
Acceuil
Posté le 20-10-2022 à 09:48:44  profilanswer
 

koskoz a écrit :

Les TU sont généralement purement métier, c'est tout autant ton contrat que ta doc.


Wat ??  [:pingouino]  
 

koskoz a écrit :

finalement tu as très peu de métier


Wat ??²²²  [:pingouino]  [:pingouino]  [:pingouino]  
 
 
 
 
Sinon tu vas bien ? Tu sens le burn-out venir ?


---------------
It is not called show art
n°2429832
Dion
Acceuil
Posté le 20-10-2022 à 09:49:23  profilanswer
 

Flaie a écrit :


Ça dépends des langages / frameworks, la stack que j'utilise c'est pas bien compliqué


Tout le monde ne peut pas être 10x programmateur  [:cosmoschtroumpf]


---------------
It is not called show art
n°2429833
Flaie
Posté le 20-10-2022 à 09:50:00  profilanswer
 

masklinn a écrit :


C’est plus l’inverse pour moi, tes flux métiers ils sont dans les TI, c’est ça qui teste le truc final / demandé.

.


this

n°2429834
gfive
Posté le 20-10-2022 à 09:51:04  profilanswer
 

masklinn a écrit :


Tester une méthode privée c’est pas nécessairement un mauvais test. Si la méthode privée est compliquée, c’est une bonne idée de la tester indépendamment des trucs pour lesquels elle est utilisée. Ça simplifie l’assignation de responsabilité quand il y a un truc qui marche pas.


 

masklinn a écrit :


C’est plus l’inverse pour moi, tes flux métiers ils sont dans les TI, c’est ça qui teste le truc final / demandé.
 
Le TU, c’est pour des tests techniques de sous-composants (~détails d’implémentation), généralement parce-que faire tourner le TI 100 fois avec des variations mineures c’est chiant et lourd quand tu peux TU le composant pour regarder si tous ses edge cases sont comme tu veux (niveau TU tu peux juste prendre des représentants des classes d’erreur).
 
Tu peux même vouloir tester des cas limites qui sont pas actuellement atteignable via TI, mais des changements futurs pourraient les exposer et tu veux t’assurer que le comportement est régulier même si aucun TI n’est fait à ce moment.


 
+1
 
Et tester une méthode privée, ça implique de bidouiller le code pour qu'elle soit testable => pour moi c'est un mauvais plan.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2429836
SekYo
Posté le 20-10-2022 à 10:00:17  profilanswer
 


Et éviter ce futur cas au niveau du code "principal" en acceptant un objet plus spécifique en entrée de foo, ça marche pas ? J'ai eu régulièrement le même type de problème dans le passé parce que sur une app Python, on avait des fonctions qui acceptaient des gros dictionnaires avec, à l'époque ou ces fonctions ont été écrites, des suppositions sur ce que contenait ce dictionnaire et/ou la valeur qu'avait certaines de ces clefs... Sauf que avec le temps forcément ces suppositions ne tiennent plus, du coup quand dans foo tu essayes d'accéder à une clef manquante, ou à une valeur qui est à None alors que ça devrait être une string, ça pète.
Et on a souvent solutionné ça en renforçant l'interface de foo, en acceptant non plus un dict en input, mais un "vrai" objet typé (genre class ou namedtuple par exemple) qui te fournit déjà plus de garanties (a minima un set commun de propriété et en fonction de comment ta class est instanciée, tu peux du coup aussi garantir que ces propriétés ont un set de valeur restreint)

 
hephaestos a écrit :

(Ok, ça rend le contrat explicite, c'est pas complétement inutile...)


Du coup je trouve dommage que ce contrat explicite il ne soit visible que via un TU et pas directement dans la signature de la fonction en question en fait (après je sais que c'est pas toujours possible, mais ça devrait être plus l'exception que la règle imho)


Message édité par SekYo le 20-10-2022 à 10:03:39
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  25043  25044  25045  ..  27171  27172  27173  27174  27175  27176

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)