0

@Autowiredをサービスレイヤーに追加すると、JUnitエラーがApplicationContextのロードに失敗しますか?

私の会社には、私たち全員がコアとなるコメントコードがいくつかあります。今日はそれをサービスに追加したかったので、POM.XMLに追加してから、次のようにしました。

@Autowired
private CoreDao coreDao;

これを追加すると、JUnitテストでエラーが発生し始めました。

Failed to load ApplicationContext

だから私は2行をコメントアウトし、すべてがうまく機能しています。約2行を追加するとテストが失敗するのはなぜですか

これが私のjUnitテストなので、なぜそれを探しているのかわかりません

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=TestDatabaseConfig.class)
public class TestApp {


    private static Log LOGGER = LogFactory.getLog(TestApp.class.getName());

    @Autowired
    private MemberInquiryService service;

    @Test
    public void testgetMemeberRequestInformation() {

        MemberRequest inMemberRequest = new MemberRequest();

        inMemberRequest.setRequestor("cpilling04@aol.com.dev");
        MemberInquiryInformation testInfo = service.getMemeberRequestInformation(inMemberRequest);

        Assert.assertEquals(testInfo.getFirst_Name(), "Christine");
        Assert.assertEquals(testInfo.getLast_Name(), "Pillings");
    }


    @Test
    public void testListMemberInquirys(){

        List<MemberInquiry> listMemberInquirys = service.listMemberInquirys();

        LOGGER.debug("Number of MemberInquiry(S) returned (" + listMemberInquirys.size() +")");


    }

}

スタックトレースをhttps://docs.google.com/document/d/1KU-63IQBbptjVNGGImtEBL9VIk04CCGBFiJuIjp_8d0/edit?usp=sharingに送信しました

4

2 に答える 2

0

これは、DataConfig がコア Bean を含むパッケージで ComponentScan を実行していなかったことです。

例:

@ComponentScan(basePackages= { "org.xxxx.inquiry", "org.xxxx.core" })
于 2013-03-20T16:08:58.907 に答える
0

2 つの可能性:

  1. SJS が言ったように、@ComponentScan を忘れると、Spring は CoreDao を特定の型に自動配線できません。
  2. CoreDao が JPA ベースの場合、persistence.xml に設定がない場合は、対応するテーブルが必要です。

私は同様の問題を抱えており、それを理解するのに数日かかりました。最後に、問題を解決するために value="validate" の代わりに value="create" を入れました。

于 2013-03-30T01:37:19.393 に答える