Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


qué prueba de unidad, en aplicaciones Android

Mis aplicaciones son en su mayoría GUI que se comunican con un servidor para la mayoría de su información. Si algo sale mal suele estar en la llamada de red o hacer una suposición equivocada acerca de un objeto JSON.

Las pruebas unitarias no son buenas para estas tareas relacionadas con la red e i / o, de lo contrario no se denominarán pruebas unitarias.

  • Cómo activar la salida de la consola en las pruebas de la unidad Android?
  • ¿Cómo prueba una aplicación de Android en varias actividades?
  • Unidad de pruebas NPE, cuando agrego fragmento transiciones personalizadas
  • Haga clic en los límites / coordenadas
  • No se puede conseguir que Robotium funcione en Android Studio
  • "No se encontraron pruebas" para las pruebas de instrumentación de Lollipop y superiores
  • Así que estoy tratando de reunir el punto de las pruebas de unidad en mi caso. ¿Por qué probaría si un botón de Android puede hacer clic o un EditText puede ver lo que escribo? Simplemente no entiendo la utilidad de implementar estas tediosas pruebas

    private void initElements(){ placeButton = (Button) findViewById(R.id.currplace); placeButton.setText(MainActivity.this.getString(R.string.findingLocation)); placeButton.setEnabled(false); selectplaceLayout = (LinearLayout)findViewById(R.id.selectplaceLayout); selectplaceLayout.setVisibility(View.GONE); splash = (RelativeLayout)findViewById(R.id.splashbg); infoLayout = (LinearLayout)findViewById(R.id.infoLayout); } 

    si este método pasado pasado, que todas mis actividades se ejecutan en onCreate, entonces sé que la aplicación funciona. Una prueba unitaria de esto sería una cosa redundante que consume mucho tiempo. Demasiado tiempo porque no estoy familiarizado con todos los métodos en el marco de prueba jUnit y Android.

    así, larga historia corta, ¿cuál es el punto? ¿Hay alguna manera en particular de pensar en estas pruebas? Todos los ejemplos y tutoriales que he visto hasta ahora sólo hablan de los ejemplos más simples, por razones de brevedad, pero no puedo pensar en ningún uso práctico para las pruebas de unidad en una aplicación predominantemente cliente-servidor.

    ¿Qué se espera que descubra al acceder a las vistas de Android que ya sé que declaré e inicializado? Debo pensar en esto de una manera demasiado limitada

    así, se apreció la percepción

  • Acceda a google plus client desde múltiples actividades
  • Imagen de fondo de la actividad de Android
  • ¿Cómo obtener la lista de aplicaciones en ejecución?
  • Obtener texto del botón pulsado
  • Android SQLite Error "solicitando nombre de columna con nombre de tabla"
  • Proyecto de biblioteca ¿se fusiona el archivo de manifiesto?
  • One Solution collect form web for “qué prueba de unidad, en aplicaciones Android”

    Hay muchas facetas en su pregunta, pero para mi opinión, probablemente no necesite pruebas unitarias en su proyecto.

    Pruebas de unidad realmente brillan cuando se necesita mucha lógica de negocio para su proyecto. En este caso es probable que desee dividir su aplicación en varias capas (digamos, arquitectura de 3 niveles), entre otras, añadir un poco de aislamiento natural para la capa de lógica de negocios y cubrirlo con una red de seguridad de pruebas de unidad.

    Esta red de seguridad cubre su culo durante el refactor de la capa de negocio, y esa es una de las principales cosas que lo que a partir de pruebas de unidad (TDD puede ofrecer algunos efectos secundarios adicionales agradable).

    Sin embargo, no todos los unicornios y arco iris y unidad de prueba pueden costar, ya veces cuestan mucho. Las buenas pruebas unitarias están aisladas (es decir, tratan con trozos pequeños de código). Esto significa que tienes que añadir capas de abstracción para poner tus clases bajo la prueba.

    Esto puede tener un efecto positivo en su sistema o negativo. Las capas hacen que su sistema sea más flexible con un costo de mayor complejidad.

    Dicho esto, el valor de las pruebas unitarias es proporcional a la cantidad de abstracto-lógica de negocio que va a introducir en su proyecto . También puedes pensar en ello, si es excesivo agregar capas abstractas a tu arquitectura, no agreges pruebas unitarias, solo harán las cosas más complicadas (arquitectura y construcción).

    Basado en su descripción – su aplicación típica tienden a ser bastante capa de presentación para algunos servidores externos. No es mucho, excepto la presentación de información en el teléfono Android y transforma las acciones del usuario a los comandos al lado del servidor donde se logra la lógica empresarial principal (control).

    Con este enfoque, la mayor parte del código que probablemente escribes está relacionado con "cómo mostrar esto y aquello" o "cómo señalar al servidor en este y ese caso". Este tipo de código es, obviamente, muy dependen de la plataforma y esto significa que si usted quiere ponerlo en prueba tendrás que burlar mucho y mucho Android código específico \ comportamiento.

    Ahora, Android es una plataforma algo específica. Fue diseñado para ser optimizado para el rendimiento y permitir a los desarrolladores iniciar y producir aplicaciones rápidamente. A menudo, esto significa que una cantidad de "swiss-cuchillo" clases que tiene use \ extend y en general esto acelera la escritura de código, pero burlarse de esas clases puede convertirse en un infierno real. Por no hablar de que usted tiene que tener la comprensión de cómo funciona la plataforma bajo el capó para hacer que los burlones útil. En otras palabras la sobrecarga de hacer esas pruebas va a ser alta.

    Otra cosa que está mal con las capas de presentación de prueba es que tienden a cambiar mucho más dinámicamente que las capas de negocio. Y, por supuesto, esto significa que tendrá que refactorizar las pruebas que añade aún más sobrecarga.

    Tengo que decir una cosa acerca de varias utilidad / ayudante clases sin embargo. Incluso si estas clases pertenecen a la capa de presentación y no dependen del código de Android, pero sí una lógica algo no trivial y es fácil burlar y escribir pruebas de unidad para ellos, podría ser una buena idea hacerlo. Sin embargo, si usted tiene un montón de código – esto puede ser una señal de que no han diseñado su arquitectura / capas, así, y la necesidad de repensar lo que está haciendo.

    Al final para responder a su pregunta usted tiene que responder a estas preguntas primero:

    ¿Será overdesign añadir capa abstracta que está separada de la plataforma a su aplicación (parece que en su caso lo hará)? En caso afirmativo, no utilice pruebas unitarias, sólo lo ralentizarán. Si no – hacer uso de ellos.

    ¿Vas a refactorizar mucho? Si eso es un proyecto grande con mucho código y por lo tanto mantenimiento – probablemente lo hará, así que invierta en capas y pruebas unitarias (pero, de un vistazo, no parece que este sea su caso). Si ese no es su caso – no se moleste con pruebas unitarias y vaya rápido.

    ¿Necesita simular la plataforma mucho para escribir sus pruebas de unidad? Si sí (parece ser su caso) – no escribir pruebas de unidad – que no vale la pena el esfuerzo.

    Espero que esto ayude.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.