Solidity

如果不存在,如何創建自己的模擬契約

  • January 9, 2022

是否有關於如何創建自己的模擬合約以便在本地網路上**正確測試智能合約的指南?**以及如何斷定一個人是否符合這個想法,並且符合主契約的要求?

我注意到一些 Mock 合約(ERC20MockV3Aggregator)有一些共同點,比如建構子或 return 語句。但是,您如何定義 Mock 是否正確,是否與原始 Mock 沒有太大區別,並使測試體驗與部署過程如此相似?

通常您只需要為您使用/測試的所需方法提供一個虛假的實現。您的模擬可以是乾淨的,而無需模擬(實現)您不會在業務邏輯中使用的所有方法。

同樣的 OOP 原則也適用於此。

我注意到一些 Mock 合約(ERC20、MockV3Aggregator)有一些共同點,比如建構子或 return 語句。

是的,他們似乎執行了一些初始化程式碼。

… 會不會與原始版本有太大不同,並使測試體驗與部署過程如此相似?

好吧,它們需要具有與原始契約相同的功能簽名。您還需要了解預期返回的值。

github中已經實現了Mocks,所以你可以使用它們。如果沒有,請在我寫的第一段中發揮創意。

引用自:https://ethereum.stackexchange.com/questions/118446