Search |
||
ME application testing - MIDlet instantiationPosted by alexeyp on July 8, 2007 at 3:09 AM PDT
The very common problem people meet when trying to unit-test their MIDlets is that you generally can not do something like this:
MIDP spec prohibits calling MIDlet constructor from application code, for security reasons MIDlet can be instantiated only by AMS, Application Management Software. All MIDP xUnit-like test frameworks, I am aware of, assume that test execution is done by a special utility MIDlet, lets call it MIDletTester, for example. Since it is not possible to get instance of your application MIDlet class from the MIDletTester, unit testing should be limited to library classes. Here are couple of ideas, we consider implementing some of them for ME Framework. Provisioning server and instrumentationIdeally, testing should be done on the instance, that runs in the environment, that is closest to real. Though you have to test every unit of the program in isolation, it would also be useful to have possibility to execute some tests on the MIDP application, that is packaged and instantiated in a regular way, not on library classes, packaged with your test application. This can be done by adding hooks to the application, where you can embed your tests. This approach will require the control over the application code, may not always be possible. If you supply minimalistic xUnit-like test framework with a server, responsible for packaging and provisioning of the test application, you can implement a solution for this and for some other MIDP-specific testing problem by using instrumentation of the compiled application class files to embed whatever hooks you need. Check the picture:
You need to modify the MIDlet class of your application under test with:
Potential approach here would be to rename all MIDlet methods that can be called by AMS and replace them with testing hook methods. Allow to bypass them or call original MIDlet methods from them. MIDlet.startUp method after instrumentation may look like:
Any comments will be appreciated. »
Related Topics >>
Mobile and Embedded Comments
Comments are listed in date ascending order (oldest first)
|
||
|
|