質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Java

    13740questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Spring Boot

    488questions

    Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Springbootのテストの初期設定を教えてください

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 276

yuki1111

score 30

SpringBootでの単体テストがまったく上手くいきません。
SpringSecurityもつかっています。
AutowiredしようとしてもログにはapplicationContextがロードできない的なことが表示されるし。悩みまくりました!!

どなたかSpringboodtでの認証機能を単体テストができるよう詳しく教えてくださいおしえてください!

bean定義は『WebSecurityConfig』『MvcConfig』と『ApplicationContextproperties』
で定義しております。
spring bootのバージョンは1.5.4.RELEASE

どうすればアノテーションで上手く設定できるのかご教示お願い致します。

ソースコード(お見せしてはいけないものは〇に変えてあります)

package com.〇〇〇〇.service;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.〇〇〇〇.domain.entity.Mst002Authority;


//@RunWith(SpringJUnit4ClassRunner.class)
//@SpringBootConfiguration(GantelApplication.class)
//@ContextConfiguration(locations="classpath:ApplicationContext.xml")

@RunWith(SpringRunner.class)
@SpringBootTest
public class AuthorityServiceTest {

//    @Autowired
//    AuthorityService authorityService;


    @Test
    public void 権限を全権取得できる() {
        AuthorityService authorityService = new AuthorityService();
        List<Mst002Authority> list = authorityService.getAuthorityAll();
        assertThat(list.get(0).getAuthorityId(), equalTo("A10"));
        assertThat(list.get(0).getAuthorityName(), equalTo("〇〇"));
        assertThat(list.get(1).getAuthorityId(), equalTo("A20"));
        assertThat(list.get(1).getAuthorityName(), equalTo("〇〇"));
        assertThat(list.get(2).getAuthorityId(), equalTo("A30"));
        assertThat(list.get(2).getAuthorityName(), equalTo("〇〇"));
        assertThat(list.get(3).getAuthorityId(), equalTo("A40"));
        assertThat(list.get(3).getAuthorityName(), equalTo("〇〇"));
    }
}

2018-04-17 01:51:25.413 ERROR 5500 --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/ApplicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/ApplicationContext.xml]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromImportedResources(ConfigurationClassBeanDefinitionReader.java:348) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:142) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:320) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) ~[spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) ~[spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120

mainメソッドのあるクラスに@ImportResource("ApplicationContext.xml")だったのですが、@ImportResource("classpath:ApplicationContext.xml")にしなければならなかったようです。
泣きそうなくらい悩みました。質問に答えてくれてほんとうにありがとうございます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yuki1111

    2018/04/17 02:07

    euledgeさん、@SpringBootTestをつけてみたのですが、やっぱりうまくいきません;;

    キャンセル

  • asahina1979

    2018/04/17 06:31 編集

    ApplicationContext.xmlに『debug=true』と書いてみました。 てことは boot じゃない 旧来 の spring .. とりあえず存在しないファイルもしくは権限で読み込めないファイルへのアクセス箇所があるようですが

    キャンセル

  • yuki1111

    2018/04/18 01:55

    asahunaさん僕たち素人に毛が生えたレベルのものなんでSpringbootにapplicationContextをつくってしまったんだとおもいます。

    キャンセル

回答 1

check解決した方法

0

解決方法はmainメソッドのあるクラスの
@import("ApplicationContext.xml")から
@import("classpath:ApplicationContext")に変更したら
テスト時に例外が発生することがなくなりました。ありがとうございます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    spring bootで静的ファイルにアクセスする方法

    Spring bootでシステム構築をしているのですが、cssやjs以外の静的ファイルのアクセス方法が分からず困っています。 デプロイ方法:jar 具体的には、src/

  • 解決済

    spring+thimeleaf+tomcatでPOST送信が文字化け

    Spring boot + thimeleaf + tomcatでWEBアプリ開発を行っております。 <使用ミドルウェア>  spring boot:1.3.2  thi

  • 受付中

    Spring4:ResponseBodyで返した日本語が文字化けする

    発生している問題・エラーメッセージ Ajax通信でSpringから返した値のうち、日本語が全て半角の「?」に置き換わってしまいます。 ?は文字数に対応しているため、マルチバイト

  • 解決済

    Springでpropertiesファイルが切り替えられない

    前提・実現したいこと 開発と本番でyml形式のプロパティファイルを切り替えたいです 発生している問題・エラーメッセージ どうしても後段のqaのプロパティになってしまい、プ

  • 解決済

    Spring起動時エラー

    java 前提・実現したいこと springを実行中に以下のエラーメッセージが発生しました。 src/main/resourcesの配下にsqlファイルを置いているのですが実

  • 解決済

    Spring起動→サーバーアクセス反応なし

    ※フォルダ構成です。 springをApplicationのメインメッソッドで実行したのですがhttp://localhost:8080/roomsにアクセスしても404

  • 解決済

    ThymeleafでPOSTされた値を画面に出力したい

    こんにちは、SpringBoot、ThymeleafをつかってHTMLでつくられた固定値の入ったテーブルを表示し、 空白のカラムなどを追加してデータの変更を受付けsubmitするこ

  • 受付中

    Spring Boot 認証

    前提・実現したいこと SpringBootでbasic認証をベースに 独自の認証に変更したいです。 発生している問題 httpBasic()を使用せずに、 BasicAuthe

同じタグがついた質問を見る

  • Java

    13740questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Spring Boot

    488questions

    Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。