Reviewed and corrected quality/unit_testing.md

Neu im Wörterbuch:
Mocking = Mocking
This commit is contained in:
debiankaios 2022-12-18 10:54:46 +01:00
parent 5923659439
commit 13eab9451c
2 changed files with 17 additions and 11 deletions

View File

@ -7,7 +7,12 @@ idx: 8.5
## Einleitung <!-- omit in toc --> ## Einleitung <!-- omit in toc -->
Unit-Tests sind ein wichtiges Instrument, um zu beweisen und sich zu vergewissern, dass der Code korrekt ist. Dieses Kapitel zeigt Ihnen, wie Sie Tests für Minetest-Mods und Spiele mit Busted schreibt. Das Schreiben von Unit-Tests für Funktionen, die Minetest Funktionen aufruft, ist ziemlich schwierig, aber zum Glück haben wir [im vorherigen Kapitel](clean_arch.html), besprochen, wie man seinen Code strukturiert, um dies zu vermeiden. Unit-Tests sind ein wichtiges Instrument, um zu beweisen und sich zu vergewissern,
dass der Code korrekt ist. Dieses Kapitel zeigt Ihnen, wie Sie Tests für
Minetest-Mods und Spiele mit Busted schreiben. Das Schreiben von Unit-Tests für
Funktionen, die Minetest Funktionen aufruft, ist ziemlich schwierig, aber zum Glück
haben wir [im vorherigen Kapitel](clean_arch.html), besprochen, wie man seinen Code
strukturiert, um dies zu vermeiden.
- [Busted installieren](#busted-installieren) - [Busted installieren](#busted-installieren)
- [Ihr erster Test](#ihr-erster-test) - [Ihr erster Test](#ihr-erster-test)
@ -15,14 +20,14 @@ Unit-Tests sind ein wichtiges Instrument, um zu beweisen und sich zu vergewisser
- [api.lua](#apilua) - [api.lua](#apilua)
- [tests/api_spec.lua](#testsapispeclua) - [tests/api_spec.lua](#testsapispeclua)
- [Mocking: Externe Funktionen verwenden](#mocking-externe-funktionen-verwenden) - [Mocking: Externe Funktionen verwenden](#mocking-externe-funktionen-verwenden)
- [Überprüfen von Commits mit Travis](#berprfen-von-commits-mit-travis) - [Überprüfen von Commits mit Travis](#überprfen-von-commits-mit-travis)
- [Zusammenfassung](#zusammenfassung) - [Zusammenfassung](#zusammenfassung)
## Busted installieren ## Busted installieren
Zuerst müssen Sie LuaRocks installieren. Zuerst müssen Sie LuaRocks installieren.
* Windows: Folgen Sie den [Installationsanweisungen im LuaRock-Wiki](https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Windows). * Windows: Folgen Sie den [Installationsanweisungen im LuaRocks-Wiki 🇬🇧](https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Windows).
* Debian/Ubuntu Linux: `sudo apt install luarocks` * Debian/Ubuntu Linux: `sudo apt install luarocks`
Als nächstes sollten Sie Busted global, also für alle Benutzer, installieren: Als nächstes sollten Sie Busted global, also für alle Benutzer, installieren:
@ -63,31 +68,31 @@ function mymod.add(x, y)
end end
``` ```
### tests/api_spec.lua ### tests/api_spec.lua<a name="testsapispeclua"></a>
```lua ```lua
-- Suchen Sie nach erforderlichen Dingen in -- Sucht nach erforderlichen Dingen in
package.path = "../?.lua;" .. package.path package.path = "../?.lua;" .. package.path
-- Setzen von mymod global für API zum Schreiben in -- Setzt mymod global für API zum Schreiben in
_G.mymod = {} --_ _G.mymod = {} --_
-- Ausführen von api.lua-Datei -- Ausführen von der api.lua-Datei
require("api") require("api")
-- Tests -- Testen
describe("add", function() describe("add", function()
it("adds", function() it("adds", function()
assert.equals(2, mymod.add(1, 1)) assert.equals(2, mymod.add(1, 1))
end) end)
it("supports negatives", function() it("supports negatives", function()--in Deutschen ist "supports negatives" "unterstützt Negative (Zahlen)"
assert.equals(0, mymod.add(-1, 1)) assert.equals(0, mymod.add(-1, 1))
assert.equals(-2, mymod.add(-1, -1)) assert.equals(-2, mymod.add(-1, -1))
end) end)
end) end)
``` ```
Sie können die Tests nun ausführen, indem Sie ein Terminal im Verzeichnis des Mods öffnen und `busted` ausführen. Sie können die Tests nun ausführen, indem Sie ein Terminal im Verzeichnis der Mods öffnen und `busted` ausführen.
Es ist wichtig, dass die API-Datei die Tabelle nicht selbst erstellt, da Globals in Busted anders funktionieren. Jede Variable, die in Minetest global wäre, ist stattdessen Es ist wichtig, dass die API-Datei die Tabelle nicht selbst erstellt, da Globals in Busted anders funktionieren. Jede Variable, die in Minetest global wäre, ist stattdessen
eine lokale Datei in Busted. Dies wäre ein besserer Weg für Minetest gewesen, die Dinge zu erledigen, aber dafür ist es jetzt zu spät. eine lokale Datei in Busted. Dies wäre ein besserer Weg für Minetest gewesen, die Dinge zu erledigen, aber dafür ist es jetzt zu spät.
@ -176,4 +181,4 @@ notifications:
Unit-Tests können die Qualität und Zuverlässigkeit Ihres Projekts erheblich steigern. Diese erfordern jedoch, dass Sie Ihren Code anders strukturieren als üblich. Unit-Tests können die Qualität und Zuverlässigkeit Ihres Projekts erheblich steigern. Diese erfordern jedoch, dass Sie Ihren Code anders strukturieren als üblich.
Ein Beispiel für einen Mod mit vielen Unit-Tests finden Sie unter Ein Beispiel für einen Mod mit vielen Unit-Tests finden Sie unter
[crafting by rubenwardy](https://github.com/rubenwardy/crafting). [crafting von rubenwardy 🇬🇧](https://github.com/rubenwardy/crafting).

View File

@ -76,6 +76,7 @@ medium data = mittlere Daten
Mesh = Mesh Mesh = Mesh
Mesh Nodes = Mesh Nodes Mesh Nodes = Mesh Nodes
Metadata Object = Metadatenobjekt Metadata Object = Metadatenobjekt
Mocking = Mocking
mod load paths = Mod-Lade-Verzeichnisse mod load paths = Mod-Lade-Verzeichnisse
mod's folder = Mod-Verzeichnis mod's folder = Mod-Verzeichnis
mods = Mods mods = Mods