J'ai cette application avec une base de données sur son arrière-plan, et j'ai beaucoup de mal à comprendre comment tester cette chose. (Il est une application Android, mais je pense que les concepts de tests sont similaires Dans ma demande en cours de test, j'ai un adaptateur de base de données.Mécanique des tests avec une connexion de base de données fictif
public class MyDatabaseAdapter() {
Cursor returnCursorFromQuery(SQLQuery query) {
// execute an SQL query and wrap the result in a Cursor object
}
}
J'ai une méthode, et je suis en train de tester qu'il donne la sortie droite lorsque ma base de données SELECT requête renvoie aucune ligne:
MyDatabaseAdapter adapter;
public int methodUnderTest() {
this.adapter = new MyDatabaseAdapter();
return populate();
}
private int populate() {
SQLQuery query = new SQLQuery("SELECT * FROM my_table");
Cursor aCursor = this.adapter.returnCursorFromQuery(query);
// populate the UI
return aCursor.getCount();
}
J'ai un objet curseur maquette qui ne renvoie aucune ligne contre toutes les requêtes dans mon cadre de tests, ce que je ne comprends pas comment je reçois mon privé populate()
méthode pour exécuter sa requête par rapport à l'objet mock cursor plutôt que le curseur connecté à ma base de données réelle.Si j'écris un objet adaptateur de base de données mock, comment obtenir le methodUnderTest()
pour utiliser l'adaptateur simulé au lieu de celui qu'il est programmé pour utiliser?
Toute direction serait vraiment utile. Merci.