Der beste Weg, um einen Smart Contract zu testen

Ich möchte nur zu Testzwecken einen einfachen Beispiel-Smart-Vertrag bereitstellen und aufrufen. Muss ich die gesamte Ethereum-Blockchain herunterladen? Es ist zu groß und das Herunterladen dauert zu lange. Kann jemand eine bessere Option vorschlagen?

Antworten (6)

Ropsten (oder Görli/Kovan etc) Testnetz ist die richtige Wahl für Sie, wenn Sie noch testen.

  1. Ich installiere einfach das Chrome Metamask- Plugin. Es kommuniziert mit Knoten auf einem Remote-Server (also kein Download, obwohl Ropsten sowieso nicht so groß ist wie die Hauptkette)

  2. Erstellen Sie nach dem Wechsel zum Ropsten-Netzwerk ein neues Konto.

  3. Anschließend können Sie den Vertrag mit dem Online Solidity Compiler wie folgt bereitstellen:

  4. Aktivieren Sie in der linken oberen Ecke unter Ausführen > Umgebung die zweite Option "injiziertes Web3".

  5. Mit „Erstellen“ können Sie Ihren Vertrag bereitstellen und Metamask fragt Sie nach Ihrem Passwort.

Jetzt können Sie Ihren Vertrag über die bereitgestellte Oberfläche testen.

Sie können Ihre Smart Contracts auch in den "Details" abrufen und in einer Anwendung verwenden.

Die Auswahl der ersten Option „JavaScript VM“ erzielt ein ähnliches Erlebnis, stellt aber tatsächlich nichts im Netzwerk bereit.

Ich verwende Remix auch mit diesem Ansatz. Für Anfänger ist es sehr einfach, aber wenn ich mehr über Ethereum weiß, entscheide ich mich vielleicht für den Truffle-Weg, der einen automatischen Weg für Unit-Tests bietet

Truffle ist eine Entwicklungsumgebung, ein Testframework und eine Asset-Pipeline für Ethereum, die darauf abzielen, das Leben als Ethereum-Entwickler einfacher zu machen. Mit Trüffel erhalten Sie:

  • Integrierte intelligente Vertragskompilierung, Verknüpfung, Bereitstellung und binäre Verwaltung.
  • Automatisierte Vertragsprüfung mit Mocha und Chai.
  • Konfigurierbare Build-Pipeline mit Unterstützung für benutzerdefinierte Build-Prozesse.
  • Skriptfähiges Bereitstellungs- und Migrationsframework.
  • Netzwerkverwaltung für die Bereitstellung in vielen öffentlichen und privaten Netzwerken.
  • Interaktive Konsole für die direkte Vertragskommunikation.
  • Sofortiger Wiederaufbau von Assets während der Entwicklung.
  • Externer Skript-Runner, der Skripte in einer Truffle-Umgebung ausführt.
Wird die gesamte Blockchain auf mein System heruntergeladen?
Sie könnten ethereumjs-testrpc zusammen mit Truffle verwenden, um nicht das Ganze herunterladen zu müssen: github.com/ethereumjs/testrpc
das hat nichts damit zu tun, aber wisst ihr, wie ich einen Vertrag nennen kann, der für Ropsten bereitgestellt wurde, zum Beispiel diesen hier: ethereum.stackexchange.com/questions/23344/…

Sie können das (Python-basierte) Populus -Framework für die Entwicklung und das Testen von Smart Contracts verwenden. Es enthält standardmäßige py.test- basierte Unit-Tests für Smart Contracts.

Es enthält

  • Testen Sie mit TestRPC (sofortige Transaktionen) oder privatem Testnet – keine langsame Blockchain-Synchronisierung

  • Integrierte intelligente Vertragskompilierung, Verknüpfung, Bereitstellung und binäre Verwaltung.

  • Skriptfähiges Bereitstellungs- und Migrationsframework.

  • Netzwerkverwaltung für die Bereitstellung in vielen öffentlichen und privaten Netzwerken.

  • Interaktive Konsole für die direkte Vertragskommunikation von der Python-Eingabeaufforderung

  • Sofortiger Wiederaufbau von Assets während der Entwicklung

  • Externer Skript-Runner, der Skripte in einer Populus-Umgebung ausführt (einfach Python-Import durchführen)

Zu den Vorteilen gegenüber JavaScript-Ansätzen gehören:

  • Saubererer Testcode - keine Callback-Hölle ( Beispiel )

  • Besser lesbarer Test durch Verwendung von assertSchlüsselwörtern anstelle verschiedener Gleichheitsfunktionen

Sie können Embark verwenden , um sowohl einfache als auch komplexe Verträge bereitzustellen und zu testen. Durch die Verwendung eines Simulators oder Ihrer eigenen privaten Kette ist es nicht erforderlich, eine gesamte Blockchain herunterzuladen. Weitere Einzelheiten finden Sie hier .

Ethereum Wallet : Sie müssen nicht die gesamte ETH-Blockchain herunterladen, um Testnet zu verwenden. Das Ethereum Wallet ist eine einfache Möglichkeit, Verträge in Testnetzwerken bereitzustellen. Ich würde das Rinkeby-Testnetz empfehlen.

Ein einfaches und unkompliziertes Befehlszeilentool zum Testen von Ethereum Smart Contracts - Ethester . Es hat ein Minimum an Software-Deps: Python 2.7, Ethereum. Solidity-Compiler empfohlen, aber nicht erforderlich.