Ich baue eine Android-App, die Firebase als Back-End und eine Modell-, Ansichts-, Presenter-Architektur verwendet. Die Tatsache, dass Firebase ein Cloud-Service ist, erschwert jedoch das automatisierte Testen in meiner Android-App. Bisher habe ich den Großteil des Authentifizierungssystems erstellt, kann aber nicht sehen, wie Einheitentests für den Firebase-Code in meiner App implementiert werden. In Bezug auf End-to-End-Tests bin ich auch festgefahren.Unit Testing mit Firebase
Da Tests für jede Android-App grundlegend sind und ohne sie die Anwendungsentwickler nicht sicher sein können, was sie implementiert haben funktioniert wie erwartet, kann ich ohne automatisierte Tests nicht weiterkommen.
Abschließend meine Frage ist:
Allgemeinen wie implementieren Sie Firebase automatisierte Tests in einem Android-App?
EDIT:
Als Beispiel könnte jemand Einheit die folgende Methode testen?
public void addUser(final String name, final String birthday,
final String email, final String password) {
Firebase mUsersNode = Constants.mRef.child("users");
final Firebase mSingleUser = mUsersNode.child(name);
mSingleUser.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
mSingleUser.child("birthday").setValue(birthday);
mSingleUser.child("email").setValue(email);
mSingleUser.child("password").setValue(password);
return Transaction.success(mutableData);
}
@Override
public void onComplete(FirebaseError firebaseError, boolean b, DataSnapshot dataSnapshot) {
if(firebaseError != null) {
mSignUpPresenter.addUserFail(firebaseError);
} else {
mSignUpPresenter.addUserComplete();
}
}
});
}
Ich habe nicht wirklich verstanden, warum Sie mit Firebase integrieren müssen, um Komponententests zu führen. Sie können die Authentifizierung und das abgerufene Dataset leicht verspotten, denke ich. –
Können Sie mir ein Beispiel geben. Ich füge eine Methode zu der Frage hinzu, für die Sie einen Komponententest schreiben möchten. –
das ist eine gute Frage: ich verschiebe eine App aus einer reinen Google App Engine Lösung. Das Google Backend (und sein Datenspeicher) haben eine "lokale" Version speziell für Unit-Tests. Was ist das Äquivalent für Firebase? – Creos