This repository was archived by the owner on Dec 4, 2025. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 0
This repository was archived by the owner on Dec 4, 2025. It is now read-only.
Instrumentation 테스트에서 activity 대신 xml를 이용한 테스트 환경 만들기 #20
Copy link
Copy link
Open
Labels
Description
체크리스트
- 제목을 입력하셨나요?
- Assignee를 지정하셨나요?
- 프로젝트를 지정하셨나요?
- 이 DEEP에 맞는 label을 지정하셨나요? (deep-automation, deep-library, deep-product)
요약
Waffle 위젯 테스트에서 Test Activity를 만들지 않고 테스트 할 수 있는 환경을 고려 해본다.
필요한 이유
widget을 테스트 하기 위해서 매번 테스트 액티비티를 만드는 것을 불필요한 코드를 만들게 된다.
목표
XmlParser를 이용하여 Widget을 동적으로 생성하는 테스트 코드를 만든다.
추후 목표
No response
계획
- XmlPullParser 학습
- xml -> AttributeSet 과정 확인
- 임의로 지정한 xml로 동적으로 위젯 생성
논의 사항
참고 코드
CTS(AOSP 테스트 코드) 내 ButtonTest
[Context](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/content/Context.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=117) [context](https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;bpv=1;bpt=1;l=37?q=ButtonTest&ss=android&gsn=context&gs=KYTHE%3A%2F%2Fkythe%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fsuperproject%3Flang%3Djava%3Fpath%3Dandroid.widget.cts.ButtonTest%2336c7a2ae2e8512d63b5e62d7762c6bfec28857b3701ed463abbf049163bab6ac) = [InstrumentationRegistry](https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;bpv=1;bpt=1;l=37?q=ButtonTest&ss=android&gsn=InstrumentationRegistry&gs=KYTHE%3A%2F%2Fkythe%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fsuperproject%3Flang%3Djava%3Fpath%3Dandroidx.test.InstrumentationRegistry%23d1bd77fa5f1a100ef4ace5fdbc7559cfaa73d16c2e0fc7f7b9f90495408aca33).[getTargetContext](https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;bpv=1;bpt=1;l=37?q=ButtonTest&ss=android&gsn=getTargetContext&gs=KYTHE%3A%2F%2Fkythe%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fsuperproject%3Flang%3Djava%3Fpath%3Dandroidx.test.InstrumentationRegistry%235204d3a0e6c081e9b51c60d144a18d618533acc79cc9f6b2cbd844e79a4f4713)();
[XmlPullParser](https://cs.android.com/android/platform/superproject/+/refs/heads/master:libcore/xml/src/main/java/org/xmlpull/v1/XmlPullParser.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=141) [parser](https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;bpv=1;bpt=1;l=38?q=ButtonTest&ss=android&gsn=parser&gs=KYTHE%3A%2F%2Fkythe%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fsuperproject%3Flang%3Djava%3Fpath%3Dandroid.widget.cts.ButtonTest%233b6b6bf46ec05e2fa332973a72df9dc9b8725bff3b0dabb4fa5a960e6d904f75) = [context](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=37?q=ButtonTest&ss=android).[getResources](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/content/Context.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=629)().[getXml](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/content/res/Resources.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=1311)([R](https://cs.android.com/android/platform/superproject/+/refs/heads/master:out/soong/.intermediates/cts/tests/tests/widget/CtsWidgetTestCases/android_common/xref/srcjars.xref/android/widget/cts/R.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=10).[layout](https://cs.android.com/android/platform/superproject/+/refs/heads/master:out/soong/.intermediates/cts/tests/tests/widget/CtsWidgetTestCases/android_common/xref/srcjars.xref/android/widget/cts/R.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=1309).[togglebutton_layout](https://cs.android.com/android/platform/superproject/+/refs/heads/master:out/soong/.intermediates/cts/tests/tests/widget/CtsWidgetTestCases/android_common/xref/srcjars.xref/android/widget/cts/R.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=1420));
[AttributeSet](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/util/AttributeSet.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=62) [attrs](https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;bpv=1;bpt=1;l=39?q=ButtonTest&ss=android&gsn=attrs&gs=KYTHE%3A%2F%2Fkythe%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fsuperproject%3Flang%3Djava%3Fpath%3Dandroid.widget.cts.ButtonTest%239a67eea4c40446ac9b0947aea2834a76a0ef0331d63056ad071a74c7b58a5390) = [Xml](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/util/Xml.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=54).[asAttributeSet](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/util/Xml.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=382)([parser](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=38?q=ButtonTest&ss=android));
new [Button](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/widget/Button.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=140)([context](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=37?q=ButtonTest&ss=android), [attrs](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=39?q=ButtonTest&ss=android), 0);
new [Button](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/widget/Button.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=116)([context](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=37?q=ButtonTest&ss=android), [attrs](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=39?q=ButtonTest&ss=android));
new [Button](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/base/core/java/android/widget/Button.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=95)([context](https://cs.android.com/android/platform/superproject/+/refs/heads/master:cts/tests/tests/widget/src/android/widget/cts/ButtonTest.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=37?q=ButtonTest&ss=android));
```
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
🆕 New