前提・実現したいこと
テスト対象クラス(シングルトン)のprivateメソッドがExceptionをthrowするのですが、
テストでExceptionを発生させるのが難しいです。
そのため、当該クラスのprivateメソッドのみをJmockitで部分的にmock化して、
Exceptionをthrowさせるようにしたいです。
該当のソースコード
java
1 2import org.apache.logging.log4j.LogManager; 3import org.apache.logging.log4j.Logger; 4 5public class LogUtil { 6 7 private static final LogUtil INSTANCE = new LogUtil(); 8 9 //コンストラクタ 10 private LogUtil() {} 11 12 //インスタンスの取得 13 public static LogUtil getInstance() { 14 return INSTANCE; 15 } 16 17 public int outPutLog(String logLevel,String msg) { 18 19 //処理結果 20 int rc = 0; 21 22 try { 23 //loggerの取得 24 Logger logger = LogManager.getLogger("hoge"); 25 26 //ログ出力 27 this.write(logger, logLevel, msg); 28 29 return rc; 30 31 }catch(Throwable T) { 32 return rc = 9; 33 } 34 } 35 36 private void write(Logger logger, String logLevel, String msg) throws Throwable { 37 switch(logLevel) { 38 case "D": 39 logger.debug(msg); 40 break; 41 case "I": 42 logger.info(msg); 43 break; 44 case "W": 45 logger.warn(msg); 46 break; 47 case "E": 48 logger.error(msg); 49 break; 50 } 51 } 52} 53 54 55
補足情報(FW/ツールのバージョンなど)
バージョンは以下の通りです。
Junit5
Jmockit1.47
JavaSE11
ソースのwrite(Logger logger, String logLevel, String msg)をMock化してExceptionをthrowさせたいです。
あなたの回答
tips
プレビュー