LoginSignup
0
0

More than 1 year has passed since last update.

Mock化できない理由

Last updated at Posted at 2023-03-30

Mock化できない理由

結論

Mock化するインスタンスをコンストラクタ、セッター、プロパティ(フィールド)で、インスタンスにする必要があり。

以下のコードの場合、Mock化はできない

public class LoginCheck {
	/**
	 *ユーザーテーブルから全データを取得
	 * @return
	 */
	public List<User> execute() {
		UserDAO dao = new UserDAO();
		List<User> user = dao.findAll();
		return user;
	}
}

なぜなら、テストするメソッド内でインスタンス化しているから。

下記のコードの場合は、Mock化できる

public class LoginCheck {
	private LoginCheck LC;
	private UserDAO userdao;
	private User user;
	

	public LoginCheck() {
		super();
		userdao = new UserDAO();
		user = new User();
	}

	/**
	 *ユーザーテーブルから全データを取得
	 * @return
	 */
	public List<User> execute() {
		UserDAO dao = new UserDAO();
		List<User> user = dao.findAll();
		return user;
	}

/*こちらのやり方でもできます。
public List<User> execute() {
		List<User> user = userdao.findAll();
		return user;
	}
*/


参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0