Test Count를 늘리지 않고 Perl의 Test :: Deep :: CMP_Deep으로 어떻게 사용하려면 어떻게해야합니까?

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

  •  16-09-2019
  •  | 
  •  

문제

보입니다 Test::Deep 영감을 받았습니다 is_deeply. 내 질문은 어떻게 만드는가입니다 cmp_deeply 자체 테스트 대신 시험의 일부? 내 테스트 목록은 8 개만 표시되기 때문에 사용할 때마다 cmp_deeply, 그것은 테스트로 계산되어 실제 테스트 수를 11 개로 만들었습니다 (전화하기 때문에 cmp_deeply 3 번) 8 개의 기능 만있을 때. 테스트 수를 늘리고 싶지 않습니다. 보다 실행 가능한 솔루션이 있습니까?

도움이 되었습니까?

해결책

당신은 사용해야합니다 eq_deeply 대신에:

이것은 동일합니다 cmp_deeply()그것을 제외하고는 단지 true 또는 false를 반환합니다. 진단을 만들지 않습니다 ...

다른 팁

당신이 할 수있는 일이 많이 있지만, 시험에서 더 많은 세부 사항을 알지 못하면 가장 적합한 것이 무엇인지 알기가 어렵습니다.

  • 특정 수의 테스트를 계획하지 마십시오.

    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.
    
  • 실행중인 테스트 수를 동적으로 결정하는데, 이는 복잡성 (및 필요한 테스트 수)이 미리 알려지지 않은 깊고 동적 인 구조를 테스트하는 경우 의미가 있습니다.

    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;
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top