... | @@ -356,6 +356,82 @@ npx hardhat test |
... | @@ -356,6 +356,82 @@ npx hardhat test |
|
```
|
|
```
|
|
Dieser Befehl startet die Testumgebung von Hardhat und führt alle Tests im test Verzeichnis aus.
|
|
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
|
|
|
|
|
|
### Deployment des Smart Contracts
|
|
### Deployment des Smart Contracts
|
... | | ... | |