0
SpringでJunitテストケースを作成しています。Spring Junitテストの問題
private static BeanFactory servicefactory = null;
private static BookingProcessService bookingProcessService;
@BeforeClass
public static void setUpBeforeClass() throws Exception{
try{
String[] configFiles = {"applicationcontext-Service.xml","applicationcontext-Hibernate.xml","applicationContext-dao.xml"};
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(configFiles);
servicefactory = (BeanFactory) appContext;
bookingProcessService = (BookingProcessService) servicefactory.getBean("bookingProcessService");
}catch (Exception e){
e.printStackTrace();
}
}
ここで、BookingProcessServiceは、インターフェイスであり、実装クラスはBookingProcessServiceImpl.javaです。 春の設定ファイルには、Bean IDが定義されていません。 テストメソッドでBookingProcessImp.javaで記述された実際のメソッド定義を呼び出すために 'bookingProcessService'を使用する方法はありますか?
"applicationcontext-Service.xml"には、BookingProcessService用にBeanが定義されていません。では、どうすればBookingProcessService実装オブジェクトを取得し、これに対してテストケースを書くことができますか? – Anand
Spring用にBeanをインジェクトしていない場合は、別のオブジェクトにインジェクトすることはできません。次に、 - ReservationProcessService bookingProcessService = new BookingProcessServiceImpl()のように、テストで新しいインスタンスを作成して、そのインスタンスをテストに追加する必要があります。 SpringにIOCを行い、Singletonインスタンスを持つことを定義することをお勧めします。 –