To add to my post on unit testing code that calls System.exit() I've wrote a little JUnit @Rule that allows you to set expectations in a simplified way.

The code is available on github.com/kay/assert-exit

Usage:

public class ExpectedExitTest {
 
  @Rule
  public ExpectedExit expectedExit = ExpectedExit.noAttempt();
 
  @Test
  public void invokesExitAsExpected() {
      this.expectedExit.expectExit(7);
      System.exit(7);
  }
}

Enjoy