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のmainメソッド内で配列のメンバーを初期化する:
for (int i=0; i<TCNUMBER; i++)
{
tweetType[i] = new TweetCategory();
}
しかし、これをメインメソッドの外側で定数の外側に移動しようとすると、構文エラーが発生します。メソッドの外側でforループを使用することは想定されていません。だから私はJUnitを正しく動作させるためにクラスを正しく初期化する方法がわかりません。メインメソッドの外で文法エラーを出すか、mainメソッドの中でそれを行い、NullPointerExceptionを取得します。何か案は?
'main'メソッドの中にコードを表示してください。 – Tudor