Eos測試框架EosFactory

EOS Factory包含一個完整的EOS測試框架,能夠進行智能合約的開發和測試。由Tokenika於建立於2017年的這個基於Python的EOS測試框架能夠輕鬆地完成智能合約的開發、部署與測試。ios

若是你但願立刻學習EOS智能合約的開發,能夠訪問這個【EOS智能合約開發教程】,教程內容涵蓋EOS工具鏈、帳戶與錢包、發行代幣、智能合約開發、部署與交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。git

隨着EOS的不斷髮展,咱們已經習慣了其基礎代碼的忽然變化,而且隨着咱們的進展而逐漸減小詛咒;)今天,這一天終於來了,咱們很是高興可以將咱們的工做交給EOS社區。咱們的新生嬰兒將以EOS Factory的名義出現,旨在成爲一個完整的,徹底記錄的跨平臺IDE,使用簡單的命令行界面,你將可以:github

  • 啓動私有 EOS testnet。
  • 編譯 EOS 智能合約。
  • 經過單元測試運行它。
  • 調整它直到你以爲它準備好了。
  • 在 EOS 上部署它。
  • 跨平臺兼容性。

咱們的主要目標之一是使EOSFactory與全部主要操做系統兼容,容許開發人員在從Linux到OSX到Windows10的全部內容上運行EOS節點並與之交互。咱們很高興地告訴你們這一點已經成功。據咱們所知,沒有其餘EOS開發解決方案可以提供。EOSFactory與Visual StudioCode完美配合。這將容許你在一個強大的IDE中編寫EOS智能合約,運行和單元測試。網絡

爲何須要它?

EOSFactory提供的全部功能均可以經過官方EOS工具集完成,即cleos和eosiocpp。EOSFactory只是另外一種工具嗎?並非的。框架

代碼開發和單元測試涉及須要執行數百次的任務,而且每次都以徹底相同的方式和上下文執行。所以,這些任務須要徹底自動化,不然浪費了大量時間,更糟糕的是,引入了許多額外的不肯定性。手動執行的操做容易出錯。工具

這就是EOSFactory實際帶來的內容:一種簡單直觀的方式來自動化處理智能合約的過程。以Python腳本的形式記下須要以徹底相同的方式和上下文屢次完成的操做,而後運行腳本。EOSFactory將負責其餘全部事情:它將編譯你的智能合約,建立新的測試網絡,部署合約,調用其方法並驗證響應,而後下線測試網絡,最後報告結果。全部這一切都在幾秒鐘內完成。單元測試

結構

在EOSFactory中,咱們使用Python與智能合約進行交互。可是,在內核裏,咱們的工具集由C++提供支持。學習

所以,EOSFactory由兩層組成:測試

  • 名稱爲teos的C++橋鏈接到運行私有testnet的EOS節點。
  • 名稱爲Pyteos的Python封裝器充當方便的人機界面。

換句話說,咱們在外部使用Python,而C++則支持內部。ui

開發週期

這就是智能合約開發週期的樣子:

  • 1.寫一份智能合約(用EOS的原生C++編寫)。
  • 2.編寫單元測試(在Python中)。
  • 3.編譯你的智能合約。
  • 4.啓動一個新的單節點testnet。
  • 5.使用Bios合約和幾個測試賬戶初始化testnet。
  • 6.部署智能合約。
  • 7.運行單元測試。
  • 8.下線testnet。
  • 9.修改智能合約或單元測試並跳轉到第3步。

在EOSFactory中,上述過程的每一步都由Python類和方法徹底自動化。做爲開發人員,你只提供創意部分,即智能合約和單元測試的內容。單元測試旨在用Python編寫,而智能合約固然是用C++編寫的。Visual Studio Code完美支持這兩種語言。

面向對象與過程

感謝Python,你在EOSFactory中處理的是類和對象。例如,智能合約是一個對象,你可使用其方法處理它,例如contract.build()constract.deploy()contract.push_action()contract.get_table()。這與用於EOS的官方CLI的cleos中使用的過程命令相反。

文檔

你能夠在此存儲庫中找到EOSFactory的源代碼,此處還有可用文檔列表

路線圖

EOSFactory仍在開發中,事情正在獲得解決和改進。如今咱們正在研究如下功能:

  • 升級到更高級的機制來建立和管理單元測試。它們將被存儲爲Python文件的層次結構,其方式相似於以太坊的truffle框架中的流程,只是咱們使用Python而不是JavaScript。此外,咱們計劃添加對其餘IDE的支持,例如Eclipse。
  • 其次,咱們正在考慮將Python層直接鏈接到cleos(官方EOS CLI)的優缺點。當咱們開始研究EOSFactory時,cleos(當時名爲eosc)情況不佳,所以不適合咱們的需求,因此咱們必須爲EOS節點構建本身的C ++接口。隨着事情變得更加順利,咱們可能會從新考慮依賴清單。
  • 最後,咱們正考慮將Ricardian Contracts整合到咱們的單元測試中。這是EOS智能合約的一個很是有趣的(在這個階段可能並不廣爲人知)方面。有關更多信息,請參閱EOSIO文檔

咱們正計劃推出EOSFactory的下一個版本,最好是在EOS推出以前。

咱們但願這是有幫助的,任何反饋,尤爲是批評,都是很是受歡迎的。若是你發現咱們的工做有用,你能夠經過在即將到來的EOS Block Producer選舉中投票選舉Tokenika來表達你的支持——咱們正在籌備更多使人興奮的EOS項目。

原文連接:EOS智能合約開發和測試框架EOSFactory

相關文章
相關標籤/搜索