Testing
測試智能合約 - 訪問內部變數
我正在尋找重新測試智能合約的最佳實踐答案。我們有想要在測試期間訪問的合約的內部變數。但是,由於添加了訪問器功能,將它們公開會在部署過程中產生更多的氣體。在測試期間是否有其他方法可以訪問這些變數?
我發現在這種情況下使用繼承是有效的。
contract My { uint someVar; } contract MyTestabe is My { function someVar() constant returns(uint) { return someVar; } }
然後只需在 MyTestable 而不是基本合約上執行測試。您應該知道,在這種情況下,您不能 100% 確定基礎合約的性能與可測試性相同(例如,新功能會影響舊功能的 gas 成本),但在大多數情況下它會沒事的。
您可以在測試期間將它們公開並將它們更改回內部以進行發布,或者您可以在要查看變數的每個地方使用事件。
兩種解決方案都需要更多的氣體,但無論如何都要在釋放之前去除。