Using Instrumentation during ActivityInstrumentationTestCase

by James » Tue, 23 Dec 2008 22:17:34 GMT


Sponsored Links
 I'm running my ActivityInstrumentationTestCase.  it runs in the
emulator.  I can watch the Intents triggering Activities in 'adb
logcat".  I see in the logcat output that the Activity was displayed:

I/ActivityManager(   50): Displayed activity my.manifest.packate/
my.package.CountingActivity: 556 ms

so I believe I've sent the keys to press the button that fire the
startActivity.  What I'm not seeing is the monitor that I've added
through the test.  My waitForMonitorWithTimeout always times out.
Here is the part of the unit test that sets up the monitor, triggers
it, then waits:

                ActivityResult result = new ActivityResult(1, null);
                String activityClassName = "my.manifest.packate/
my.package.CountingActivity";
                ActivityMonitor monitor = getInstrumentation().addMonitor
(activityClassName, result, true);

                sendKeys(KeyEvent.KEYCODE_ENTER);

                System.out.println("wait for timeout");
                Activity actualActivity = getInstrumentation
().waitForMonitorWithTimeout(monitor, 20000);
                System.out.println("after timeout");
                assertNotNull("non null activity means the monitor was invoked",
actualActivity);

The activity implementation "CountingActivity" has a sysout, it always
prints in logcat after "wait for timeout" and before "after timeout",
but the actualActivity is always null.  I show here using the full
<package>/<full-class-name> for the activityClassName.  I began with
out the "<package>/" and used just the classname, but that had the
same effect -- never triggering the monitor.  Further evidence that
I'm not registering the monitor correctly is that that addMonitor call
with true at the end should skip the actual Activity and return my
canned result.

Has anyone successfully tested with this process?
--~--~---------~--~----~------------~-------~--~----~



Using Instrumentation during ActivityInstrumentationTestCase

by James » Tue, 30 Dec 2008 03:12:58 GMT


 I didn't get any responses from the "Android Beginners" group, so
after a few days wait I'm trying this group.  I'm trying to use the
provided methods on the Instrumentation instance given to
ActivityInstrumentationTestCase classes.  I could not find a book
listed on Amazon (available or pre-release) that covered unit
testing.  I scanned the table of contents of all the Android books I
found.  If you know of one, please point it out.

I'm running my ActivityInstrumentationTestCase.  it runs in the
emulator.  I can watch the Intents triggering Activities in 'adb
logcat".  I see in the logcat output that the Activity was displayed:

I/ActivityManager(   50): Displayed activity my.manifest.package/
my.package.CountingActivity: 556 ms

so I believe I've sent the keys to press the button that fire the
startActivity.  What I'm not seeing is the monitor that I've added
through the test.  My waitForMonitorWithTimeout always times out.
Here is the part of the unit test that sets up the monitor, triggers
it, then waits:

                ActivityResult result = new ActivityResult(1, null);
                String activityClassName = "my.manifest.packate/
my.package.CountingActivity";
                ActivityMonitor monitor = getInstrumentation
().addMonitor
(activityClassName, result, true);

                sendKeys(KeyEvent.KEYCODE_ENTER);

                System.out.println("wait for timeout");
                Activity actualActivity = getInstrumentation
().waitForMonitorWithTimeout(monitor, 20000);
                System.out.println("after timeout");
                assertNotNull("non null activity means the monitor was
invoked",
actualActivity);

The activity implementation "CountingActivity" has a sysout, it always
prints in logcat after "wait for timeout" and before "after timeout",
but the actualActivity is always null.  I show here using the full
<package>/<full-class-name> for the activityClassName.  I began with
out the "<package>/" and used just the classname, but that had the
same effect -- never triggering the monitor.  Further evidence that
I'm not registering the monitor correctly is that that addMonitor call
with true at the end should skip the actual Activity and return my
canned result.

Has anyone successfully tested with these methods from
Instrumentation?

--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Other Threads

1. Android Market woes... the press finally catch on





I think it's supposed to:






-------------------------------------------------------------------------------------------------
TreKing - Chicago transit tracking app for Android-powered devices
http://sites.google.com/site/rezmobileapps/treking

-- 

2. method.getAnnotation( ) or method.isAnnotationPresent( ) not working

Just wanted to add that I get false for following line even if I have
annotation added.
if (methodList[i].isAnnotationPresent(MethodInfo.class))



> 

3. Mod, WTS: Pre Order Motorola Droid

4. new interpreter for Android

5. Removing Calendar package

6. implementing predictions for IME?

7. How to use TCP transport in android rtsp client.