Truffle bietet zwei Möglichkeiten zum Testen von Smart Contracts: entweder mit Testdateien, die als Solidity Contracts geschrieben sind, oder mit Javascript/Mocha.
https://truffleframework.com/docs/truffle/testing/writing-tests-in-solidity
https://truffleframework.com/docs/truffle/testing/writing-tests-in-javascript
Gibt es Empfehlungen, wann zwischen den beiden zu wählen ist? Bleibst du bei einem oder verwendest du beide, aber für unterschiedliche Zwecke?
Ich verwende (vorerst) ausschließlich Javascript, weil:
Ich sage nicht, dass mein Ansatz der beste ist und jeder ihn verwenden sollte, und dass das Testen auf Solidität nutzlos ist. Ich sage eher, ich bin faul , hatte nicht genug Zeit, um zu lernen und mich wohl zu fühlen, Solidity zum Testen zu verwenden, und das Testen von nodejs ist für mich jetzt gut genug.
Wenn Sie die Zeit haben, würde ich Ihnen empfehlen, sich mit beiden Wegen vertraut zu machen .
Ich stimme Tudor zu, ich benutze auch Javascript. Möchte ergänzen:
Testen Sie Ihre Smart Contracts mit JavaScript
Und das Ergebnis:
Vertrag: FundRaise ✓ hat einen Eigentümer (38ms ) ✓ kann Gelder annehmen (234ms )
2 bestanden (473ms )
Schön. Dies ist ein Prozess, der systematisch durchgeführt wird, um Smart Contracts mit einem in JavaScript geschriebenen Test abzudecken. Machen Sie einfach so lange weiter, bis alle Bedingungen eines Smart Contracts erfüllt sind.
Hier ist ein großartiger Medium-Artikel, der alles abdeckt, was mit dem Testen auf Ethereum zu tun hat.
Festigkeitsprüfungen
Das Schreiben von Tests in Solidity gibt uns die Möglichkeit, Blockchain-Layer-Tests durchzuführen. Sie ermöglichen Tests, Verträge und Funktionen so aufzurufen, als ob sie selbst auf der Blockchain wären. Um das interne Verhalten von Smart Contracts zu testen, können wir:
- Schreiben Sie Unit-Tests, um Funktionsrückgabewerte und Zustandsvariablenwerte zu überprüfen.
- Schreiben Sie Integrationstests, die die Interaktionen zwischen Verträgen testen. Diese stellen sicher, dass Mechanismen wie Vererbung und Abhängigkeitsinjektion wie erwartet funktionieren.
JavaScript-Tests
Wir müssen auch sicherstellen, dass Smart Contracts das richtige externe Verhalten zeigen. Um intelligente Verträge von außerhalb der Blockchain zu testen, verwenden wir Web3js, genau wie unsere DApp. Wir müssen darauf vertrauen können, dass unser DApp-Frontend beim Aufrufen der Smart Contracts ordnungsgemäß funktioniert. Diese fallen unter Integrationstests.
Quelle: https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d
Bastien
Tudor Constantin
web3js
hat bei mir aber bisher sehr gute Dienste geleistet.