2011-01-22 3 views
1

私の論文のWebアプリケーションを開発しています。今、私はその部分で、そのWebアプリケーションで自動テストを実行したいところです。問題は、私はこのテストを実行できないということです。 Stacjtraceは、私がテストしたいクラスから必要とされるクラスを見つけることができなかったと言います。JUnitがejbコンテナのインスタンスを作成せずにGlassFish v3のJSFで動作していないことは間違いありませんか?

NetBeansをデバッグし、クラスがロードされているのを確認しました。そして、私がテストしたクラスだけが読み込まれたようです。誰かが私に、埋め込みGlassFishを実行する必要があると私に言った。事前に

おかげ

Testcase: testGetInstance(org.iav.io.IOFacadeTest):  Caused an ERROR 
null 
java.lang.ExceptionInInitializerError 
     at org.iav.io.IOFacade.<init>(IOFacade.java:32) 
     at org.iav.io.IOFacade.getInstance(IOFacade.java:47) 
     at org.iav.io.IOFacadeTest.testGetInstance(IOFacadeTest.java:50) 
Caused by: java.lang.NullPointerException 
     at org.iav.io.LicenseListFileBean.<clinit>(LicenseListFileBean.java:47) 


Testcase: testGetPoolSize(org.iav.io.IOFacadeTest):  Caused an ERROR 
Could not initialize class org.iav.io.LicenseListFileBean 
java.lang.NoClassDefFoundError: Could not initialize class org.iav.io.LicenseListFileBean 
     at org.iav.io.IOFacade.<init>(IOFacade.java:32) 
     at org.iav.io.IOFacadeTest.testGetPoolSize(IOFacadeTest.java:63) 

クラスIOFacade:

@ApplicationScoped 
public class IOFacade extends Observable { 

    private static IOFacade instance; 
    private UserListFileBean userListFileBean; 
    private LicenseListFileBean licenseListFileBean; 
    private FileAccessorBean fileAccessorBean; 

    /** 
    * Constructor for this class. Initializing also dependent classes. 
    * Encapsulates IO-Subsystem from beeing direct accessed. 
    */ 
    public IOFacade() { 
     licenseListFileBean = LicenseListFileBean.getInstance(); 
     userListFileBean = UserListFileBean.getInstance(); 
     fileAccessorBean = FileAccessorBean.getInstance(); 
     /** Registering this instance at fileAccessorBean to be notified if list 
     * has changed. 
     */ 
     addObserver(fileAccessorBean); 
    } 

答えて

0

はい、ユニットテストは、あなたがテストしているクラスのみが含まれます。ユニットテストのためにコンテナクラスをモックアウトする必要があります。

あなたのクラスが環境とどのようにやり取りするかをテストする統合テストまたはシステムテストの場合は、埋め込み環境でアプリケーションを実行する必要があります。 Arquillianをチェックすると、組み込みテスト環境を簡単に管理することができます。 Glassfish 3.0.1、JBoss、その他のコンテナで動作します。

+0

ありがとうございました。本当に使いやすいと思われます。試してみましょう。 –

+0

@ adem.caliskan右上に! Arquillianは素晴らしいです。それがあなたのために働くなら、この答えを受け入れることを忘れないでください。 –

関連する問題