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 -->
|
## 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).
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user