Some are still not confuse so lets cover this point again. In mobile we have a virtual machine meaning that we cannot predict the behavior of member variables that have been exposed. in other words its the underlying reason why we came up with interface patterns in Java. That is different from say ObjectiveC iOS programming. That is the uniqueness of developing on a computer language environment that happens o use a Virtual Machine.

So in performance constrained environments where we are relying less on interface patterns what testing do we have to do to verify behavior since we are not normally mapping it too well through our architecture design? Exactly, BDD or functional unit testing which directly implies instrumented testing because that is the only way to measure the behavior on such a test in the first place.

Developers who advocate TDD unit testing in a JVM in a VM computer language that is different from running the same application through BDD unit testing on an emulator or device are hiding a choice they are fostering on you to appear cool when inn actual reality they expose themselves to deficiency in understanding what a mobile VM does why certain architecture patterns arose within java. That is a very bad choice to foster on someone in name of speed to replace proficiency in java development in a mobile constrained environment.