J'aime assez cette définition. Mais du coup, est-ce censé de tester ses valueobject quand ils sont complexes? Par exemple, un vecteur ?
Si un valueobject contient un nombre imaginaire, les calculs sur les nombres imaginaires se feraient où? Par exemple, l'addition, la multiplication, la norme, l'argument, la conversion en exponentielle,... ça irait dans le valueobject, ou dans un objet séparé, dédié aux calculs sur des nombres imaginaires (donc, une classe séparée qui traite des valueobject NombreImaginaire)? Perso, je ferai une classe séparée.
Pour répondre à srm:
Si un valueobject contient un nombre imaginaire, les calculs sur les nombres imaginaires se feraient où? Par exemple, l'addition, la multiplication, la norme, l'argument, la conversion en exponentielle,... ça irait dans le valueobject, ou dans un objet séparé, dédié aux calculs sur des nombres imaginaires (donc, une classe séparée qui traite des valueobject NombreImaginaire)? Perso, je ferai une classe séparée.
Pour répondre à srm:
srm a écrit :Tu test un int ? Un int ou tu peux faire int > int à un comportement ?J'aime bien l'idée de voir le valueobject comme un typage de donnée. Si le typage est complexe, il est censé de le tester, donc tester les typades de données me semble possible. Ce n'est pas réalisable en revanche pour int car il s'agit d'un typage du langage, un genre de ValueObject définit dans le langage et non dans le code. Et il ne fait clairement pas sens de tester un composant du langage (int ou l'opérateur >). En revanche, il est censé de tester ses valueobjects.