0

以下のコードは機能していません

@BeforeClass    
public static void setUp() {
            service=new BusManager();
            logger = mock(Logger.class);
            when(logger.isDebugEnabled()).thenReturn(true);
            doAnswer(new MakePersistentCallback()).when(logger).debug(argStr.capture());
            mockStatic(Logger.class);
            when(Logger.getLogger(argClass.capture())).thenReturn(logger);
            entityMngr = mock(IEntityMgr.class);

            applicationBusManager = mock(ApplicationBusManager.class);
            antityManagerFactory = mock(EntityManagerFactory.class);
            applicationEntityMgr=mock(ApplicationEntityMgr.class);
            userApplicationEntityMgr=mock(UserApplicationEntityMgr.class);
            disBusManager=mock(DisBusManager.class);



            ReflectionTestUtils.setField(service,"entityManagerFactory",entityManagerFactory);
            ReflectionTestUtils.setField(service,"applicationBusManager",applicationBusManager); 
            ReflectionTestUtils.setField(service,"disBusManager",disBusManager); 



            when(entityManagerFactory.getEntityManager("applicationEntityMgr")).thenReturn(applicationEntityMgr);

            when(entityManagerFactory.getEntityManager("applicationEntityMgr")).thenReturn(applicationEntityMgr);


        }

次のエラーが表示されています。私の目的は、junits とともに cobertura レポートを提供することです。ロガーもカバーする必要があります...そのため、テスト クラスの初期化の前にロガー コードを配置します。

  java.lang.NullPointerException
        at org.apache.commons.logging.impl.Log4JLogger.isDebugEnabled(Log4JLogger.java:299)
        at org.springframework.test.util.ReflectionTestUtils.setField(ReflectionTestUtils.java:109)
        at org.springframework.test.util.ReflectionTestUtils.setField(ReflectionTestUtils.java:81)
        at 

ロガーのモックを使用すると、コードは正常に動作します..しかし、ロガーも動作する必要があります..

4

1 に答える 1

0

Reflectionutils をデバッグしている間は、問題が発生している行です。そのため、テスト クラスのセッター メソッドを使用してこれらのオブジェクトを挿入し、正常に動作していることを確認しました。

于 2013-05-30T11:45:16.440 に答える