Comment puis-je utiliser le test de Perl :: :: Profonde cmp_deeply sans augmenter le nombre de tests?

StackOverflow https://stackoverflow.com/questions/1274756

  •  16-09-2019
  •  | 
  •  

Question

Il ressemble à Test::Deep a été inspiré par is_deeply . Ma question est de savoir comment puis-je faire partie cmp_deeply d'un test au lieu d'un test sur sa propre? Parce que ma liste des tests indique seulement 8, mais chaque fois que je l'utilise cmp_deeply, il compte comme un test, ce qui rend mon nombre réel de tests 11 (parce que j'appelle cmp_deeply 3 fois) quand je n'ai 8 fonctions. Je ne veux pas augmenter le nombre de mes tests. Y at-il une solution plus viable?

Était-ce utile?

La solution

Vous devez utiliser à la place eq_deeply:

  

est le même que cmp_deeply()   sauf qu'il retourne juste vrai ou faux.   Il ne crée pas de diagnostic ...

Autres conseils

Il y a un certain nombre de choses que vous pouvez faire, mais sans en savoir plus des détails dans vos tests, il est difficile de savoir qui est le plus approprié:

  • Ne prévoyez pas un certain nombre de tests.

    use Test::More;
    
    all(
        cmp_deeply($got0, $expected0),
        cmp_deeply($got1, $expected1),
        cmp_deeply($got2, $expected2)
       );
    
    # ... your other 7 tests
    done_testing();  # signals that we're all done.. exiting normally.
    
  • Dynamiquement déterminer le nombre de tests sont en cours d'exécution, ce qui est logique si vous testez une structure profonde et dynamique dont la complexité (et le nombre de tests requis) ne sont pas connus à l'avance:

    use Test::More;
    use Test::Deep;
    
    # perhaps this is in some sort of loop?
    cmp_deeply($got0, $expected0);  $numTests++;
    cmp_deeply($got1, $expected1);  $numTests++;
    cmp_deeply($got2, $expected2);  $numTests++;
    
    # ... your other 7 tests
    
    # TAP output must be either at the beginning or end of all output
    plan tests => $numTests + 7;
    
    # no more tests here!
    exit;
    
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top