-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace main() with unit test to make Travis CI work #1
base: master
Are you sure you want to change the base?
Conversation
FTR, with the test code on master, everything succeeds even though it should fail: |
Now there's a unit test which fails as expected: |
Now the branch contains the unit test change without the change that makes the decryption fail, so it should be ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Siehe TODO Kommentar, der Test sollte noch die Ausgabe prüfen.
=> Dafür sollte das Programm noch eine Ausgabe erzeugen. Anscheinend kann man das dann ganz gut mit assert_cli
(https://mattgathu.github.io/testing-rust-cli-apps/) machen.
Der Key sollte vermutlich nicht in eine Datei geschrieben werden. Das sollte in einem "Key Storage" Beispiel erklärt werden. Also man müsste den Key noch mit einem Passwort schützen/verschlüsseln.
Das mit dem Prüfen der Ausgabe wäre ein bisschen umständlich. Wenn du eine Assertion haben möchtest, könnte die Methode auch true/false zurückgeben, je nach dem ob es geklappt hat oder nicht, und der Test kann prüfen, dass es true ist. Das wäre dann eine leichtgewichtigere Art des Das mit dem Key stimmt. Im analogen Java-Beispiel (https://www.cryptoexamples.com/java_string_encryption_key_based_symmetric.html) wird der Schlüssel einfach nicht gespeichert, sondern beim Ver- und Entschlüsseln aus dem gleichen Objekt im Speicher ausgelesen. Wäre das hier auch ok? |
Ok, aber was macht der Unit test sonst? Er führt die Funktion aus. |
Initially, I'm just creating this pull request hoping that Travis will eventually complain about a failure in there. Later, I will update it without causing the failure, but keeping the code that catches it.