Prueba JUnit con KOTLIN android studio

Soy muy nuevo en desarrollo android y recientemente hice mi primer proyecto. Es solo una calculadora básica con sum, resta, multiplicación y split.

Ahora, estoy buscando entrar en testings unitarias usando JUnits con KOTLIN. ¿Cómo debo hacer esto? He estado buscando y no tengo idea.

Calculadora Códigos Java:

package com.example.zhiwen.calculator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity{ Button plus,minus,times,divide; TextView textview3; EditText first, second; double no1 = 0, no2 = 0; double answer = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); plus = (Button) findViewById(R.id.plus); minus = (Button) findViewById(R.id.minus); times = (Button) findViewById(R.id.times); divide = (Button) findViewById(R.id.divide); textview3 = (TextView) findViewById(R.id.textview3); first = (EditText) findViewById(R.id.editText); second = (EditText) findViewById(R.id.editText2); } public void ClickMeButton(View view){ if(first.getText().toString().isEmpty() || second.getText().toString().isEmpty()) { textview3.setText("Answer: -"); Toast.makeText(getApplicationContext(),"Please fill up both numbers",Toast.LENGTH_SHORT).show(); } else { no1 = Integer.parseInt(first.getText().toString()); no2 = Integer.parseInt(second.getText().toString()); textview3.setText("Answer: " + Functions.addFunction(no1,no2)); } } public void ClickMeButton2(View view){ if(first.getText().toString().isEmpty() || second.getText().toString().isEmpty()) { textview3.setText("Answer: -"); Toast.makeText(getApplicationContext(),"Please fill up both numbers",Toast.LENGTH_SHORT).show(); } else { no1 = Integer.parseInt(first.getText().toString()); no2 = Integer.parseInt(second.getText().toString()); textview3.setText("Answer: " + Functions.minusFunction(no1,no2)); } } public void ClickMeButton3(View view){ if(first.getText().toString().isEmpty() || second.getText().toString().isEmpty()) { textview3.setText("Answer: -"); Toast.makeText(getApplicationContext(),"Please fill up both numbers",Toast.LENGTH_SHORT).show(); } else { no1 = Integer.parseInt(first.getText().toString()); no2 = Integer.parseInt(second.getText().toString()); textview3.setText("Answer: " + Functions.multiFunction(no1,no2)); } } public void ClickMeButton4(View view){ if(first.getText().toString().isEmpty() || second.getText().toString().isEmpty()) { textview3.setText("Answer: -"); Toast.makeText(getApplicationContext(),"Please fill up both numbers",Toast.LENGTH_SHORT).show(); } else { no1 = Integer.parseInt(first.getText().toString()); no2 = Integer.parseInt(second.getText().toString()); textview3.setText("Answer: " + Functions.divFunction(no1,no2)); } } 

}

Códigos de class de function:

 package com.example.zhiwen.calculator; /** * Created by Zhiwen on 5/25/2017. */ public class Functions { public static double addFunction(double no1, double no2){ double answer; answer = no1 + no2; return answer; } public static double minusFunction(double no1, double no2){ double answer; answer = no1 - no2; return answer; } public static double multiFunction(double no1, double no2){ double answer; answer = no1 * no2; return answer; } public static double divFunction(double no1, double no2){ double answer; answer = no1 / no2; return answer; } 

}

No puede usar la testing unitaria para dicho código. Tienes dos opciones:

  1. Extraiga la lógica de negocio de la calculadora a una class que no esté relacionada con el marco de Android y pruebe esta class con testings unitarias
  2. Use testings de Instrumentación y Expreso para probar la IU

La primera opción es mucho más preferible (las testings unitarias son más rápidas y tendrás una architecture mucho mejor).

En este caso, probar con Java o Kotlin no tiene ninguna diferencia, debe usar exactamente los mismos enfoques y técnicas, como Java.

Lo primero que debes hacer es consultar la capacitación oficial en el website para desarrolladores de Android: https://developer.android.com/training/testing/index.html

  • El depurador Java seleccionado actualmente no admite puntos de interrupción de tipo 'Kotlin Line Breakpoints'
  • Tokens inesperados (uso; para separar expresiones en la misma línea)
  • KotlinJS: ¿Cuándo usaría el tipo dynamic Kotlin?
  • ¿Cómo lidiar con los límites generics migrando de Java a Kotlin?
  • Error: com.app.android.dagger.component.AppComponent (no codificado) no puede hacer reference a enlaces delimitados:
  • Fundición genérica en Kotlin
  • Bt Socket cerró la exception
  • Actualización del contenido de subcripción de MediaBrowserService
  • ¿Cómo puedo convertir una KFunction sin param de instancia en una KFunction con ella?
  • Publicar en el hilo de la interfaz de usuario
  • No se puede usar getter personalizado con propiedad delegada