Update Entwicklerdokumentation authored by s88999's avatar s88999
......@@ -356,6 +356,82 @@ npx hardhat test
```
Dieser Befehl startet die Testumgebung von Hardhat und führt alle Tests im test Verzeichnis aus.
### Beispiel für einen Unit-Test
```jsx
const { expect } = require("chai");
describe("DEX", function () {
it("should add liquidity correctly", async function () {
const DEX = await ethers.getContractFactory("DEX");
const dex = await DEX.deploy();
await dex.deployed();
await dex.addLiquidity(1000, { value: ethers.utils.parseEther("1.0") });
const liquidity = await dex.getTokensInContract();
expect(liquidity).to.equal(1000);
});
});
```
### Was zu erwarten ist
Nach dem Ausführen der Tests sollten Sie in der Konsole eine Ausgabe ähnlich der folgenden sehen:
```bash
DEX
✔ should add liquidity correctly (xx ms)
1 passing (xx ms)
```
Dies bedeutet, dass der Test erfolgreich war und die Funktion addLiquidity wie erwartet funktioniert hat.
### Weitere Tests
Zusätzlich zu den oben gezeigten Unit-Tests können auch Integrationstests durchgeführt werden, um sicherzustellen, dass die verschiedenen Teile des Systems korrekt zusammenarbeiten. Hier ein Beispiel für einen Integrationstest, der sowohl das Hinzufügen als auch das Entfernen von Liquidität testet:
```jsx
const { expect } = require("chai");
describe("DEX Integration", function () {
it("should add and remove liquidity correctly", async function () {
const [owner, addr1] = await ethers.getSigners();
const DEX = await ethers.getContractFactory("DEX");
const dex = await DEX.deploy();
await dex.deployed();
// Hinzufügen von Liquidität
await dex.addLiquidity(1000, { value: ethers.utils.parseEther("1.0") });
let liquidity = await dex.getTokensInContract();
expect(liquidity).to.equal(1000);
// Entfernen von Liquidität
await dex.connect(addr1).removeLiquidity(500);
liquidity = await dex.getTokensInContract();
expect(liquidity).to.equal(500);
});
});
```
### Ausführung der Tests und Erwartungen
Nach dem Ausführen der erweiterten Tests sollten Sie eine Ausgabe ähnlich der folgenden sehen:
```bash
DEX
✔ should add liquidity correctly (xx ms)
DEX Integration
✔ should add and remove liquidity correctly (xx ms)
2 passing (xx ms)
```
Dies zeigt, dass sowohl die Unit-Tests als auch die Integrationstests erfolgreich waren und dass die Hauptfunktionen des DEX korrekt implementiert sind.
## Deployment
### Deployment des Smart Contracts
......
......