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

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

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

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

Java

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

Q&A

解決済

1回答

1786閲覧

jmockitでフィールドに値を入れる方法について

d41k1

総合スコア0

JUnit

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

Java

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

0グッド

0クリップ

投稿2021/08/25 07:16

編集2021/08/30 07:08

前提・実現したいこと

テストコードを修正しています。
現状nullPointerExceptionが発生しています。これを解消したいです。

発生している問題

上階層でprivateな、aというフィールドがあり、下階層にもprotectedな、同名のaというフィールドがあります。
また、両階層ともインスタンス生成はできないです。

現状、上(private)aのチェッククラスにnullpointerが発生しており、deencapsulationで値を入れようにも、下階層のみに値が入ってしまいます。

#####使用言語など
java,jmockit,junit

###詳細(業務に関わるためぼかしています。分かりにくく申し訳ございません。)
CheckA
private ABCDE

CheckB extends CheckA
protected ABCDE(上と同名)

Test1
Deencapsulation.setField(this.target, "ABCDE",abcde)

CheckAのABCDEでnullpointer。
値はCheckBに入ってしまっている。
※製品のコードは変更不可です。

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

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

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

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

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

hoshi-takanori

2021/08/25 23:23

上階層・下階層というのはどういう意味ですか? できればソース (実際のソースは無理でも、問題を再現できるもの) を貼ってほしいです。
d41k1

2021/08/26 05:53

返信ありがとうございます。 checkA checkB extends checkA で、checkBのフィールドにしか値が入らない。という状況です。
kiino

2021/08/28 03:31

どういうクラスがあって、どういうテストを書こうとしているのか、 ソースコードに書いて概要欄に記載してもらうことは可能でしょうか。 なんとなくわかるような気もするのですが、大事なところなので認識を揃えておきたく。
d41k1

2021/08/30 07:09

kiinoさん、ありがとうございます。 追記いたしました。 分かりづらく申し訳ございません。少しでもご教授いただければ幸いです。
hoshi-takanori

2021/08/30 12:26

import mockit.internal.reflection.FieldReflection; FieldReflection.setField(CheckA.class, this.target, "ABCDE",abcde); でいけるかも? (でも、jmockit 最新版では使えなくなってますね…。)
d41k1

2021/08/31 01:25

hoshi-takanoriさん、ありがとうございます! 試したところ、おかげさまで解決しました。 私の環境は最新版ではないため、使用できました。 ご回答いただいたお三方、本当にありがとうございました。とても助かりました!
guest

回答1

0

自己解決

追記欄参照。

ご返信いただいたお三方、本当にありがとうございました。

投稿2021/08/31 01:26

d41k1

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問