We all know the pattern: A test fails but you can’t fix it right away. What do you do? Let it stay red? @Ignore it?
All those approaches have drawbacks. Red tests make me nervous. But when I add an @Ignore, I sometimes forget to remove it in a timely fashion. Enter stage ignoreUntil():
/**
* Ignore a test until a certain date.
*
* <p>This method will make the test silently fail
* (as if it had been ignored) until a certain
* date.
*
* <p>For documentation purposes, you can give a
* message that explains why it's ignored.
*/
public static void ignoreUntil(
String date_YYYY_MM_DD,
String message
) {
Date date;
SimpleDateFormat format
= new SimpleDateFormat( "yyyy-MM-dd" );
try {
date = format.parse( date_YYYY_MM_DD );
} catch( ParseException e ) {
throw new RuntimeException(
"Can't parse date ["
+ date_YYYY_MM_DD
+ "] using format "
+ format.toPattern()
);
}
Assume.assumeTrue( new Date().after( date ) );
}
Usage:
@Test
public void someTest() throws Exception {
ignoreUntil( "2011-09-15", "See issue #78" );
}
Happy testing!
Like this:
Like Loading...