Androidでテストの時にソースを切り分ける方法
テストのときは別の初期化をしたいときどうしたらいいんだろうと悩んでたら方法を見つけたのでメモ。
答えはここにあった
How to determine if Android Application is started with JUnit testing instrumentation?
1 2 3 4 5 6 7 8 9 10 11 12 |
private static boolean isTestMode() { boolean result; try { application.getClassLoader().loadClass("foo.bar.test.SomeTest"); // alternatively (see the comment below): // Class.forName("foo.bar.test.SomeTest"); result = true; } catch (final Exception e) { result = false; } return result; } |
テストのクラスがあるかチェックしてその判定をもってテスト可動化するsTestModeというメソッドを作って判定するらしい。
なんかやりかたがすげースマートじゃないけどできたからまぁいっか。
でもiOSもこんな感じだし発想的には似たようなもんかな。
1 2 3 |
if (NSClassFromString(@"XCTestCase")) { return; } |