我怎样才能在浓缩咖啡中得到应用程序?
How can I get Application in espresso?
我正在使用浓缩咖啡向我的 Android 应用程序添加测试。
在我的 TestActivity
中,我有一些视图仅在用户签名时可见。 userIsSignedIn
标志存储在 MyApp
中,它是 android.app.Application
的子类。有没有办法在测试用例中访问 MyApp
的实例?
如果没有,有什么替代方法可以做到这一点?
谢谢
在你的测试中class你可以使用这样的东西:
@Rule
public ActivityTestRule<MainActivity> mActivityRule =
new ActivityTestRule<>(MainActivity.class);
然后在你的测试方法中:
@Test
public void doSomething() {
//....
mActivityRule.getActivity().getApplication();
}
你可以使用 @Rule -
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<> MainActivity.class);
@RunWith(AndroidJUnit4.class)
public class Regression extends BaseTest {
private static final String TAG = TestConstants.TAGPRETEXT + Regression.class.getSimpleName() + " ";
private ActivityTestRule<MainActivity> activityTestRule;
private TestName testName;
@Rule
public RuleChain chain = RuleChain
.outerRule(activityTestRule = new ActivityTestRule<>(MainActivity.class))
.around(testName = new TestName());
@Override
public <MainActivity extends AppCompatActivity> MainActivity getActivity() {
return (MainActivity) activityTestRule.getActivity();
}
@Override
public TestName getTestName() {
return testName;
}
@Test
public void addBasalProgram24Segments() {
String programName = "testing" + System.currentTimeMillis() / 1000;
try {
new Main()
.doBasal()
.createBasalSegment(new float[]{1.15f, 14.55f, 0.05f, 12.05f, 19.05f, 21.5f, 20, 1.85f, 10.0f, 1, 2, 4, 15, 26.05f, 10, 30, 15, 4, 25, 15, 5, 12, 10, 20}, programName, new Random().nextInt(5), activityTestRule)
.verifyBasalProgramExist(programName);
} catch (MyEspressoException e) {
testFailRoutine(e);
}
}
}
我正在使用浓缩咖啡向我的 Android 应用程序添加测试。
在我的 TestActivity
中,我有一些视图仅在用户签名时可见。 userIsSignedIn
标志存储在 MyApp
中,它是 android.app.Application
的子类。有没有办法在测试用例中访问 MyApp
的实例?
如果没有,有什么替代方法可以做到这一点?
谢谢
在你的测试中class你可以使用这样的东西:
@Rule
public ActivityTestRule<MainActivity> mActivityRule =
new ActivityTestRule<>(MainActivity.class);
然后在你的测试方法中:
@Test
public void doSomething() {
//....
mActivityRule.getActivity().getApplication();
}
你可以使用 @Rule -
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<> MainActivity.class);
@RunWith(AndroidJUnit4.class)
public class Regression extends BaseTest {
private static final String TAG = TestConstants.TAGPRETEXT + Regression.class.getSimpleName() + " ";
private ActivityTestRule<MainActivity> activityTestRule;
private TestName testName;
@Rule
public RuleChain chain = RuleChain
.outerRule(activityTestRule = new ActivityTestRule<>(MainActivity.class))
.around(testName = new TestName());
@Override
public <MainActivity extends AppCompatActivity> MainActivity getActivity() {
return (MainActivity) activityTestRule.getActivity();
}
@Override
public TestName getTestName() {
return testName;
}
@Test
public void addBasalProgram24Segments() {
String programName = "testing" + System.currentTimeMillis() / 1000;
try {
new Main()
.doBasal()
.createBasalSegment(new float[]{1.15f, 14.55f, 0.05f, 12.05f, 19.05f, 21.5f, 20, 1.85f, 10.0f, 1, 2, 4, 15, 26.05f, 10, 30, 15, 4, 25, 15, 5, 12, 10, 20}, programName, new Random().nextInt(5), activityTestRule)
.verifyBasalProgramExist(programName);
} catch (MyEspressoException e) {
testFailRoutine(e);
}
}
}