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

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

ただいまの
回答率

90.83%

  • Java

    12490questions

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

  • JUnit

    169questions

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

JMockitで、メソッド内から呼び出している別メソッドのみの挙動を置き換えたい

受付中

回答 0

投稿

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

TSho

score 5

前提・実現したいこと

ここに質問したいことを詳細に書いてください
現在、Jmockitを使って、単体テストを行っています。
そこで、呼びだしたresourcebundleの値をモック化して、呼び出すプロパティファイルを替えながらテストしていこうと考えています。
また、このメソッドはシングルトンなので、インスタンスを生成しないで、readPropertiesメソッドのテストをしていきたいのです。

発生している問題・エラーメッセージ

ResourceBundleによって取得されるプロパティファイルを変更したい。

該当のソースコード

public class Sample{
    private static final String FILE_NAME = "aaa";

    public static synchronized Sample readProperties() {
        ResourceBundle rb = ResourceBundle.getBundle(FILE_NAME);
        Sample singleton = null;
        if(singleton == null){
            singleton = new Sample();
        }
        return null;
    }
}

試したこと

課題に対してアプローチしたことを記載してください
シングルトンで無ければ、jmockitを使用してモック化をする事が出来るのですが、シングルトンを使用した場合には、どのように記述すれば良いかわかりません。
曖昧な例文で申し訳ございませんが、是非とも智恵をお貸し頂けないでしょうか?

こちらが、jmockitを使用したモック化です
https://teratail.com/questions/63535

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

Java 1.8
Jmockit 1.24

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正の依頼

  • unz.hori

    2018/05/23 17:32

    試してはいませんが、rbをメソッドの外に置いて(クラスのメンバ変数)として、setterメソッドを追加して変更するとかすればいいのでは?あとはgetInstanceメソッドで自分自身のインスタンスを返してそれを取得してsetterを呼び出せばいいかと...

    キャンセル

  • unz.hori

    2018/05/23 17:34

    あー、あとrbを元にプロパティ値を再度取得するメソッドも必要かな。

    キャンセル

まだ回答がついていません

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

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

関連した質問

  • 解決済

    PHP Mysql

    下記のようなエラー出てしまって解決できません、誰かが教えていただけません? Mysqlのバージョンの問題のようには思いましたが解決できませんでした。 1)Strict Stand

  • 解決済

    jmockit1.3でメソッドのみをモック化したい

    例えば、AClassのメソッドであるAmethodのみをモック化したい場合、過去のバージョンでは、以下のような指定で実現できました。 @Mocked("Amethod") A

  • 解決済

    C# リストからの値の取り方について

    C# リストからの値の取り方について class Sample { public string No; public string Name; } このようなクラス

  • 解決済

    javaのファイル内に任意の文字列があれば削除するメソッド

    こんにちは 掲題の通りなのですが、java.ioを利用し、 ①ファイルを読み込む。 ②ファイルの中を一行ずつ読み込み、「男」という文字がある行のみ削除。 というメソッドを作

  • 解決済

    javaクラスの初歩的な質問

    下記の様なクラスがあった場合、javaならではの(?)スマートな書き方ってあるのでしょうか。 funcPre関数の重複を簡略化できるのかなと言う質問になります。 class S

  • 解決済

    staticイニシャライザ クラスがロードされるタイミングについて

    下のコードはnullponterExeptionがスローされるのですが nullponterExeptionではなくExeptionInitializerErrorでした・・・

  • 解決済

    [Java]プロパティファイルが読み込めない

    前提・実現したいこと Javaでプロパティファイルの読み込み方について勉強しています。 ResourceBundleだと読み込めません。 アドバイスを頂ければうれしいです。 発

  • 解決済

    Enumをローカライズ

    タイトルの通りなのですが、Enum(正確にはEnumのnameプロパティ)をAndroidでローカライズするにはどうすれば良いでしょうか? string.xmlと結びつける方法がい

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

  • Java

    12490questions

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

  • JUnit

    169questions

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