Forums: Discussion-Ouverte (Thread #21528)

ValidationTestCaseを使ったvalidation.xmlのJUnitについ (2009-02-03 11:08 by Anonyme #41629)

初めまして、ValidationTestCaseを使ってvalidation.xmlのチェックを試みたのですが、エラーが出てJUnitが成功しません。
解決方法をご教授いただけないでしょうか。

■環境
2.0.1.0のWEB版です。

■詳細
ValidationTestCaseを継承したテストケースにて、
JavaDocを参照しながら、下記のように設定してみました。

@Override
protected void setUp() throws Exception {
super.setUp();

setActionServlet(new UTActionServlet());

setContextDirectory(new File("WebContent"));

setConfigFile("/WEB-INF/struts-config.xml");

setRequestPathInfo("/sampleBLogic.do");
}

/**
* アクションパスに入力するデフォルト値
*/
private static final String[][] defaultParams = { {"userid", "00000001"},
{"password", "password"}};

public void testNoError() {
// 入力データの設定
setRequestParams(defaultParams);

// 入力チェックの実行
actionPerform();

// 実行結果の検証
verifyNoActionErrors();
}

public void testUserid01() {
// 入力データの設定
setRequestParams(defaultParams, "userid", "");

// 入力チェックの実行
actionPerform();

// 実行結果の検証
verifyActionErrors(errorsRequired);
}

JUnitを実行すると下記のような例外がでます。

■例外内容
[2009/02/03 10:36:31][ERROR][ContextLoaderPlugIn] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/sampleBLogic' defined in ServletContext
resource [/WEB-INF/moduleContext.xml]: Cannot resolve reference to bean 'SampleBLogic'
while setting bean property 'businessLogic'; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'SampleBLogic' defined in ServletContext resource [/WEB-INF/moduleContext.xml]:
Cannot resolve reference to bean 'queryDAO' while setting bean property 'queryDAO';
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'queryDAO' is defined

おそらくapplicationContext.xmlが読み込まれてないかと思いますが、差し込むにはどのようにすればいいかわかりません。
別の話題にありましたdao-test.xmlのqueryDAOにMockQueryDAOを記述したものを差し込むことも考えましたが、
後からBean定義ファイルを差し込む方法がわからなかったためできませんでした。

moduleContext.xmlに直接queryDAOを記述するのだけは避けたいです。

対応方法をよろしくお願いいたします。

Répondre à 41629×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: ValidationTestCaseを使ったvalidation.xmlのJUnitについ (2009-03-16 11:36 by kimuraku #42577)

回答が遅くなり申し訳ございません。

setUp()メソッドに以下の2行を追加するとapplicationContext.xmlを読み込ませることができます。

 ContextLoader contextLoader = new ContextLoader();
 contextLoader.initWebApplicationContext(context);

以下、サンプルコードになります。

@Override
protected void setUp() throws Exception {
 super.setUp();
 setActionServlet(new UTActionServlet());
 setContextDirectory(new File("WebContent"));

 ContextLoader contextLoader = new ContextLoader();
 contextLoader.initWebApplicationContext(super.context);

 setConfigFile("/WEB-INF/struts-config.xml");
 setRequestPathInfo("/sampleBLogic.do");
}

これでapplicationContext.xmlの読み込みは可能になりますが、
もしJUnitで正常にテストできないようであれば再度ご質問いただけますでしょうか。
Répondre à #41629

Répondre à 42577×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion