@Elk,

This is really helpful,

I have a question regarding first approach:

Is there any other way to use Android instrumentation unit tests in
MonkeyRunner apart from starting Android tests on the device?
Can i use Android unit test methods in MonkeyRunner script?


Thanks,


On Fri, Dec 17, 2010 at 10:02 PM, A. Elk <lancaster.dambust...@gmail.com>wrote:

> Your question is vague, to me.
>
> If you're asking how to run Android unit tests (classes in
> android.test.*) using MonkeyRunner:
>
> Set up your Android tests, then call them from MonkeyRunner. You can,
> for example, write a single Python program using the MonkeyRunner API
> that goes through a set of emulators, each with its own
> configuration,  runs a suite of test cases against each emulator, and
> then outputs the results to a file. You can do this because Python
> allows you to call the "emulator" comand-line program programmatically
> (see the "os" module). You use the device.instrument() method to call
> an instrumentation for a device, and instrumentation is the way you
> run an Android test.
>
> If you're asking how to run a Python unit test using MonkeyRunner,
> then it depends on what you're trying to do, but in general, you don't
> need to.
>
> If you want to use MonkeyRunner to run JUnit, I would ask "why"? You
> can run JUnit from the command line. Just because you can run JUnit
> (or an Android JUnit test) from Eclipse doesn't mean that you *have*
> to. The SDK documentation explains this. Look in the Dev Guide under
> "Developing > Testing > Testing with Other IDEs".
>
> JUnit runs each test method in each test class in a package of test
> classes. Similarly, the Android test framework uses instrumentation
> plus JUnit to run each test method in each test class in a test
> package.
>
> Some more comments about unit testing:
>
> Remember, *unit testing should focus on each test taking a single path
> through a single app method.*
>
> Use unit testing to verify that the class you've written works
> according to its specifications. Also use unit testing to verify that
> the latest change you made hasn't broken anything. Test-driven
> development says that your class and methods do what the *tests* say
> they do, not what the *code* says they do. What isn't tested not only
> doesn't work, it doesn't exist.
>
> In Android, you would do *true* unit testing by doing most of your
> functionality in Plain Old Java Objects (POJOs) and then testing these
> using JUnit. You would follow this by doing what I like to call
> "pseudo-unit" testing with Android's testing framework, using the test
> case classes in android.test.* and InstrumentationTestRunner. This
> framework allows you to test objects that require the Android
> environment. The documentation for some of them says that they are
> "unit tests", while others are documented as "functional tests". By
> the most strict definition they're all functional tests, but the
> nature of Android means that you can't do a "true" unit test on an
> object that depends on Android system objects. The reason: you can't
> create the Android system objects outside of Android, so you have to
> instantiate the object under test within Android, so you have to do a
> bit of hand-waving on the dependencies.
>
> Nonetheless, Android tests are more unit test than functional test.
> You *can't* do high-level functional testing or integration testing in
> the Android framework, because you can't test more than one Android
> object at a time. One of them has to be an external dependency that
> you must assume is working.
>
> You may decide that a useful way to do functional/integration testing
> is to use the Android test framework along with some larger framework.
> You write some tests using Android's test case classes. You then run
> multiple test cases sequentially to simulate UI interactions,
> processing, etc. You can use MonkeyRunner to do this. Perhaps a better
> way to do it is to use Robotium or Selenium.
>
>
>
> On Dec 17, 12:50 am, Miguel Pellón <miguelpel...@gmail.com> wrote:
> > I would like to use some unit testing for python combined with the
> > monkeyrunner, but I have seen monkeyrunner is called via command line,
> > so I dont see the way of integrating it into a unit testing framework
> > (similar to junit). Any idea on how to do it?
> >
> > Thanks!
> >
> > Regards,
> > Miguel
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Thanks and Regards

Aniruddha Dhamal
ani123.dha...@gmail.com

" No matter which direction you start
Its always against the wind coming  back "

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to