每當我嘗試使用JUnit測試我的代碼時,我都會收到一個NullPointerException異常 - 即使我在運行實際程序時沒有得到該異常。這給了我異常的行是:JUnit測試中的空指針異常
assertEquals(0.0, TweetClassification.tweetType[TweetClassification.SIGNIF_OTHER].likelihoodA);
的TweetClassification類的開始它的測試如下:
public class TweetClassification
{
// CONSTANTS =============================================
public static final int TCNUMBER = 5; // number of TweetCategories (including the null category)
// using constants to indicate the names of the TweetCategories, so that they could be renumbered
public static final int NULLTWEET = 0;
public static final int SIGNIF_OTHER = 1;
public static final int FRIENDS = 2;
public static final int WORK = 3;
public static final int FOOD = 4;
public static final TweetCategory[] tweetType = new TweetCategory[TCNUMBER];
...
(TweetCategory是包內的單獨定義的另一個類。)所以,我意識到這個代碼初始化數組,但不是它的成員,這可能是爲什麼我得到異常(?)但事情是,我初始化的TweetClassification主要方法中的數組成員,如下所示:
for (int i=0; i<TCNUMBER; i++)
{
tweetType[i] = new TweetCategory();
}
但是,如果我嘗試將這個循環移到主方法之外的常量,我得到一個語法錯誤 - 我認爲你不應該在方法外使用for循環。所以我不確定如何正確地初始化JUnit以使其正常工作 - 或者我在主方法之外執行並獲得語法錯誤,或者我在主方法內部執行該操作並獲得NullPointerException。有任何想法嗎?
請在'main'方法中顯示代碼。 – Tudor 2012-03-24 14:30:00