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

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

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

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

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

JIRA

JIRAは、アトラシアン社が開発しているプロジェクト管理ツールです。高いカスタマイズ性を持ち、タスク・工数・進捗・スケジュールなどプロジェクトを全般的に管理できます。複数のプロジェクトを一元管理することも可能です。

Q&A

1回答

4917閲覧

static finalなオブジェクトにmockを使用したい

hirochin

総合スコア21

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

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

JIRA

JIRAは、アトラシアン社が開発しているプロジェクト管理ツールです。高いカスタマイズ性を持ち、タスク・工数・進捗・スケジュールなどプロジェクトを全般的に管理できます。複数のプロジェクトを一元管理することも可能です。

0グッド

0クリップ

投稿2019/06/21 09:20

編集2019/06/24 00:18

お世話になっております。

前提・実現したいこと

NetBeansでWebアプリをJavaで作成しております。

質問の内容

テストでMockを利用する状況だと思うのですが
使用したことが無く検索しても英語サイトしか見つけられず
不安なので質問失礼します。

java

1private static final FileOperator OPERATOR = FileOperator.getFileOperator(); 2int retryCount = FILE_RETRY_MAX;//5 3while(true){ 4 try { 5 result = OPERATOR.getFileDownload(location); 6 break; 7 } catch (hogeException ex) { 8 retryCount--; 9 if (0 == retryCount) { 10 throw ex; 11 } 12 } 13}

上記の
result = OPERATOR.getFileDownload(location);
で通常失敗しないのですが
テストのために失敗する(4回失敗する。5回失敗する)
とのモックが作成したいのですがこのような場合作成出来るのでしょうか?

なんかfinal staticではpowermockで出来そうとの文書をどこかで見たのですが
英語サイトばかりで自分では対応出来ません。

どこか有用なページ等ご存じな博識な方はご返答頂けますようお願い申し上げます。

試したこと

"static final PowerMock"などで検索したグーグルで調査したところ
https://qiita.com/daik/items/2a63dfcb769a9241671f
https://qiita.com/morinco/items/a41cc7685be75a2f6e08
https://codeday.me/jp/qa/20190127/194935.html
https://qiita.com/vicboss1002/items/4d0fa5c290d422db194d
など見つける事が出来ましたが自分の実力不足でよく分からない……

補足情報(FW/ツールのバージョンなど)

OS:Win10(64bit)
NetBeans

上記 ご助力頂けますようお願い申し上げます。

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

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

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

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

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

gentaro

2019/06/21 12:45

> 英語サイトばかりで自分では対応出来ません。 「誰か英語読んで説明してくれ」と言ってるようなものなので、Google翻訳なり使って努力はしてみましょう。
hirochin

2019/06/22 08:30

おっしゃる通りですね‥… 社内セキュリティの問題で検索サイト繋がらないのですが なんとか一生懸命調べてみますっ
guest

回答1

0

ググっただけですが。
Javaユニットテストの作り方(JUnit & Mockito & PowerMock)

JUnit & Mockito & PowerMockを使ったテストクラス

--
PowerMockを追加した場合です。
staticメソッドの内容を書き換えることが出来ます。

Java

1@Test 2 public void pubGetWithStatic_withPowerMock() { 3 // mockStatic() でstaticメソッドがスタブの値を返す 4 PowerMockito.mockStatic(Sample.Static.class); 5 // 目的のメソッド以外は元々の挙動としたい場合は代わりに PowerMockito.spy() を使う 6 // PowerMockito.spy(Sample.Static.class); 7 PowerMockito.when(Sample.Static.getValue()).thenReturn("PowerMockito value"); 8 String actual = instance.pubGetStaticValue(); 9 assertThat(actual, is("PowerMockito value")); 10 }

投稿2019/06/21 10:01

dsuzuki

総合スコア1682

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

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

dsuzuki

2019/06/21 10:03

finalがないから無理かな。
hirochin

2019/06/24 05:47

dsuzuki様 情報ありがとうございます。 参考にさせていただきますっ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問