JUnit4와 Robotium을 공존시키는 방법
@RunWith(Enclosed.class)
에서 테스트 클래스를 계층화하고 그룹화하여 테스트 조건별로 테스트 메소드를 분류하고 정리할 수 있게 되므로 편리합니다.Gradle 주위
테스트중인 앱의 build.gradle에 설정을 작성합니다.
할 일은 두 가지입니다.
테스트 코드 종속성 해결
종속성을 해결합니다.
dependencies {
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.2.1'
// もしくは、 jar ファイルを ディレクトリに置いておくなら
// androidTestCompile fileTree(dir: 'testlibs', include: '*.jar')
}
테스트 러너 (android.support.test.runner.AndroidJUnitRunner) 설정
android {
defaultConfig {
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
}
테스트 클래스
main 과 같은 계층에 androidTest 디렉토리를 만듭니다. 그 안에 java 디렉토리를 작성합니다.
그림으로 하면 아래와 같습니다.
src
┣ main
┃ ┗ java
┃ ┗ com.example // アプリのコード
┗ androidTest
┗ java
┗ com.example.debug.test // テストクラスはこの中!
테스트 클래스는 다음과 같습니다.
src
┣ main
┃ ┗ java
┃ ┗ com.example // アプリのコード
┗ androidTest
┗ java
┗ com.example.debug.test // テストクラスはこの中!
BaseTest
클래스 SampleTest
( @RunWith(Enclosed.class)
로 계층화 해 보았습니다) 의 2개로 나누어 보았습니다.
BaseTest.class
@RunWith(AndroidJUnit4.class)
abstract public class BaseTest extends ActivityInstrumentationTestCase2<AppBaseActivity> {
protected Solo solo;
public BaseTest() {
super(AppBaseActivity.class);
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
solo = new Solo(getInstrumentation());
getActivity();
}
@After
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
}
SampleTest.class
@RunWith(Enclosed.class)
public class SampleTest {
@RunWith(AndroidJUnit4.class)
public static class FooTest extends BaseTest {
public FooTest() {
super();
}
@Test
public void runFoo() {
// テストコード
}
@Test
public void runFooWithExpiredToken() {
// テストコード
}
}
@RunWith(AndroidJUnit4.class)
public static class BarTest extends BaseTest {
public BarTest() {
super();
}
@Test
public void runBar() {
// テストコード
}
}
}
테스트 실행
GUI
Android Studio. 채우고 있는 부분은 모듈을 선택.
CUI
./gradlew clean assembleDebug assembleAndroidTest
# テスト対象のアプリ
adb install -r sample/build/outputs/apk/app-debug.apk
# テスト
adb install -r sample/build/outputs/apk/app-debug-androidTest-unaligned.apk
adb shell am instrument -w com.example.debug.test/android.support.test.runner.AndroidJUnitRunner
감상
JUnit4는 JUnit3에 비해 다양한 유용한 주석이 추가되었습니다. 별로 모르기 때문에 배우고 싶습니다.
Reference
이 문제에 관하여(JUnit4와 Robotium을 공존시키는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/arai-wa/items/95de6c0afd59fcd0c617
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
./gradlew clean assembleDebug assembleAndroidTest
# テスト対象のアプリ
adb install -r sample/build/outputs/apk/app-debug.apk
# テスト
adb install -r sample/build/outputs/apk/app-debug-androidTest-unaligned.apk
adb shell am instrument -w com.example.debug.test/android.support.test.runner.AndroidJUnitRunner
JUnit4는 JUnit3에 비해 다양한 유용한 주석이 추가되었습니다. 별로 모르기 때문에 배우고 싶습니다.
Reference
이 문제에 관하여(JUnit4와 Robotium을 공존시키는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arai-wa/items/95de6c0afd59fcd0c617텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)