On Saturday 17 May 2008 20:48:24 Aristotle Pagaltzis wrote:

> You’re not following.
>
> 1. There is non-broken code which isn’t being tested directly.
>
> 2. There is a test that ensures its correctness, but only
>    indirectly, as part of testing something else.
>
> 3. That something else is currently broken, so the test is
>    annotated TODO.
>
> End result: if the untested non-broken code breaks, you don’t
> notice.
>
> Arguably, you should write a test that covers the non-broken code
> directly so you don’t need to care about the TODO’d test.
>
> But that may be comparatively hard for a number of conceivable
> reasons. Ensuring that the TODO continues to break in the
> expected fashion may well be cheaper than any of the “proper”
> options and provides similar safety.

There's a lot more "maybe" in that paragraph than I like.  People already have 
to modify the TODO test to add whatever kind of positive assertion you 
postulate; why is writing a separate test a barrier?

You can already achieve similar results with:

        my $do_i_care_flag;
        my $result;

        {
                local $TODO     = 'b0rked';
                $result         = some_behavior();
                $do_i_care_flag = !ok( $result, 'This might be b0rked' );
        }

        if ($do_i_care_flag)
        {
                is( $result, 'some value i care about',
                        '... borked in a predictable way anyway' );
        }
        else
        {
                pass( '... but I don't care' );
        }

You can skip that block if you have no plan.

-- c

Reply via email to