Wenn Sie Unit-Test-Funktionen, die eine error
Rückgabetyp haben, habe ich mich gefragt, wie für diesen Fehler Unit Test ordnungsgemäß testen. Solltest du nur überprüfen, ob der Fehler gleich null ist oder nicht? Oder sollen Sie überprüfen, ob die Fehlerzeichenfolge auch mit einer erwarteten Zeichenfolge übereinstimmt?Wie Unit-Test Go-Fehler
Antwort
In den meisten Fällen können Sie nur überprüfen, ob der Fehler nicht null ist.
Ich würde empfehlen, Fehlerstrings nicht zu überprüfen, es sei denn, dies ist absolut notwendig. Ich denke generell, dass Fehlerzeichen nur für den menschlichen Verzehr bestimmt sind.
Wenn Sie mehr Details über den Fehler benötigen, ist eine bessere Alternative benutzerdefinierte Fehlerarten. Dann können Sie den Fehler (Typ) ändern und sehen, ob es ein Typ ist, den Sie erwarten. Wenn Sie noch mehr Details benötigen, können Sie festlegen, dass die benutzerdefinierten Fehlertypen Werte enthalten, die Sie dann in einem Test überprüfen können.
Gos Fehler ist nur eine Schnittstelle für einen Typ, der eine Error() string
-Methode hat, so dass die Implementierung selbst einfach ist. https://blog.golang.org/error-handling-and-go
Ja ich meine Funktion testen, die den Fehler zurückgeben und überprüfen, ob die Fehlermeldung übereinstimmt. Aber es liegt an Ihnen, ob Sie es überprüfen möchten oder nur den Fehler überprüfen ist nicht nil
.
nehme an, Sie eine Funktion wie dieses:
// testing tot get error message
func TestReturnSomeErr(t *testing.T){
Expected := "this is error message"
actual := returnSomeErr(-1)
if actual.Error() != Expected{
t.Errorf("Error actual = %v, and Expected = %v.", actual, test.Expected)
}
}
Beachten Sie, dass ich verwende .Error()
Funktion, um die Fehlermeldung zu erhalten, so:
func returnSomeErr(input int)error{
if input > 0{
return nil
}
return errors.New("this is error message")
}
Sie Gerät die Fehlermeldung wie folgt testen dass ich es mit String vergleichen kann. Sie können einen weiteren Test erstellen, um zu testen, ob bei den Eingabedaten > 0
.
- 1. Wie Unittest
- 2. SQLiteDatabase UnitTest
- 3. Wie UnitTest diese Methode richtig?
- 4. wie Subprocess.call in einem unittest
- 5. Jersey benutzerdefinierte Validatoren unittest
- 6. AppEngine python unittest Aufgabenwarteschlange
- 7. Python Unittest Hauptfunktion spöttische
- 8. Auto_now für Unittest überschreiben
- 9. unittest Sellerie Aufgabe assertRaises
- 10. Unittest Vs pytest
- 11. Python Unittest und Objektinitialisierung
- 12. AutoFixture Unittest Parameter Setup
- 13. UnitTest FormType Symfony 3
- 14. Test FOSUserBundle Unittest
- 15. Python Unittest Import Probleme
- 16. Unittest nicht testen (Python)
- 17. Python Unittest Vererbung
- 18. Neo4j UnitTest und APOC
- 19. Python Unittest assertRaises
- 20. rekursive Unittest entdecken
- 21. Larval Unittest Validierung
- 22. uibModal-Anbieter unbekannt unitTest
- 23. Unittest mit Vorlage golang
- 24. Python Unittest für argparse
- 25. Unittest Ausgabe in IPython
- 26. django unittest Importfehler
- 27. Python Unittest ModuleImportFailure
- 28. UnitTest JSONObject zeigt null
- 29. Python Unittest und Multithreading
- 30. For-Schleife in Unittest
Ich mag die Idee, benutzerdefinierte Fehlertypen zu verwenden, die Dinge definitiv vereinfachen würden. – GabeMeister