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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

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

Spring Boot

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

Q&A

1回答

1591閲覧

Spring Bootでのテストコード実装

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Spring Boot

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

0グッド

0クリップ

投稿2018/11/22 01:59

編集2022/01/12 10:55

Spring Bootテストコードを実装し、実際にテストを行っているのですが、値からデータが取得できません。
どのようにすればいいのでしょうか。

public class APITest { @Mock APIConfiguration config; @Before public void setup() { MockitoAnnotations.initMocks(this); } @Test public void APIのテスト() { API api = new API(); String publicKey = this.config.getPublicKey(); System.out.println(publicKey); api.setPublicKey(publicKey); assertThat(api.getPublicKey()).isEqualTo(publicKey); } }
@Component @Data @ConfigurationProperties(prefix = "vapid-keys") public class APIConfiguration { private String publicKey; private String privateKey; }
@Data public class API { private String publicKey; }
@RunWith(SpringRunner.class) @SpringBootTest public class APIApplicationTests { @Test public void contextLoads() { } }

2018/11/26追記

public class APIConfigurationTest { @Mock private APIConfiguration config; @Before public void setup() { MockitoAnnotations.initMocks(this); } @Test public void publicKeyのテスト() { when(config.getPublicKey()).thenReturn("public key"); assertThat(config.getPublicKey()).isEqualTo("public key"); } }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/11/22 03:33

ランナーの指定が Spring 向けじゃないからじゃないの?
退会済みユーザー

退会済みユーザー

2018/11/22 04:39

ご回答ありがとうございます。ソースコードを追加しました。@RunWith(SpringRunner.class)部分の記述をテスト用にする必要があるということでしょうか。
A-pZ

2018/11/22 09:08

「値からデータが取得できません」は、いったいどの値が取得できないのでしょうか…?
euledge

2018/11/22 12:45

vapid−keysと書いてあるのは、タイポではなく設定ファイルにも同じように書いてありますか?
退会済みユーザー

退会済みユーザー

2018/11/26 00:37

publicKeyが取得できていない状態です。vapid−keysですが、application.propertiesも設定しており、通常起動では取得できています。
A-pZ

2018/11/26 01:02

あとで質問文を編集されると良いでしょう。
guest

回答1

0

java

1@Mock 2APIConfiguration config;

モック化しているクラスに対して値を取得しているので、テストで期待する動作を記載してください。
テスト用のフレームワークに Mockito を利用しているようなので、Mockito で検索すると良いかと。

投稿2018/11/26 01:06

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/11/26 02:34

APIConfigurationTestクラスを作成し、実行してみたところうまく動作しました。 戻り値があるメソッドをテストする場合は、必ずwhen~thenReturnを記述しないといけないのでしょうか。(jUnitでのテスト自体あまり経験がありません。。。)
A-pZ

2018/11/26 03:09

JUnitでのテストではなく、Mockitoでのテストを書くときモック対象のクラスに対して、 「モックのメソッドを実行したときは、この結果が得られるとする」ものです。 テストを行いたいクラスだけのテストを書きたいものなので、それ以外のクラスについてはモック化して、振る舞いを仮定します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問