首先main方法测试的主要原理参见下面的链接

http://www.cnblogs.com/ITEagle/archive/2010/07/10/1774888.html

1、callMainFailure

    

代码

/**
* <p>
* Tests the main method. <code>System.exit</code> is expected.
* </p>
*
*
@param args
* the arguments.
*/
private static void callMainFailure(String[] args) {
try {
PriceConversionUtility.main(args);

fail(
"System.exit is expected.");
}
catch (SecurityException e) {
// Good
}
}

不论main方法正常结束还是异常结束都要System.exit因此这个函数在准确性测试和异常测试中都可以用的到

2、MockSecurityManager

    一个测试的帮助类

   

代码

import java.security.Permission;

public final class MockSecurityManager extends SecurityManager {
/**
* <p>
* This method throws exception for testing if the status is 1 or 0.
* </p>
*
*
@param status
* The exit status code.
*
*
@throws SecurityException
* Always.
*/
public void checkExit(int status) {
super.checkExit(status);
if (status == 1 || status == 0 || status == -1) {
throw new SecurityException("Halt for testing.");
}
}

/**
* <p>
* This method does nothing.
* </p>
*
*
@param perm
* Ignored.
*/
public void checkPermission(Permission perm) {
}
}