Reviewed and corrected quality/unit_testing.md
Neu im Wörterbuch: Mocking = Mocking
This commit is contained in:
parent
5923659439
commit
13eab9451c
@ -7,7 +7,12 @@ idx: 8.5
|
||||
|
||||
## 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)
|
||||
- [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)
|
||||
- [tests/api_spec.lua](#testsapispeclua)
|
||||
- [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)
|
||||
|
||||
## Busted 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`
|
||||
|
||||
Als nächstes sollten Sie Busted global, also für alle Benutzer, installieren:
|
||||
@ -63,31 +68,31 @@ function mymod.add(x, y)
|
||||
end
|
||||
```
|
||||
|
||||
### tests/api_spec.lua
|
||||
### tests/api_spec.lua<a name="testsapispeclua"></a>
|
||||
|
||||
```lua
|
||||
-- Suchen Sie nach erforderlichen Dingen in
|
||||
-- Sucht nach erforderlichen Dingen in
|
||||
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 = {} --_
|
||||
-- Ausführen von api.lua-Datei
|
||||
-- Ausführen von der api.lua-Datei
|
||||
require("api")
|
||||
|
||||
-- Tests
|
||||
-- Testen
|
||||
describe("add", function()
|
||||
it("adds", function()
|
||||
assert.equals(2, mymod.add(1, 1))
|
||||
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(-2, mymod.add(-1, -1))
|
||||
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
|
||||
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.
|
||||
|
||||
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).
|
||||
|
@ -76,6 +76,7 @@ medium data = mittlere Daten
|
||||
Mesh = Mesh
|
||||
Mesh Nodes = Mesh Nodes
|
||||
Metadata Object = Metadatenobjekt
|
||||
Mocking = Mocking
|
||||
mod load paths = Mod-Lade-Verzeichnisse
|
||||
mod's folder = Mod-Verzeichnis
|
||||
mods = Mods
|
||||
|
Loading…
Reference in New Issue
Block a user