Solidity
松露測試庫 - 類型錯誤:在庫中的參數相關查找後未找到成員或不可見成員
有人可以確認這種行為並提供解決方案嗎?使用
truffle test
我收到錯誤消息Member "functionName" not found or not visible after argument-dependent lookup in library A
。是因為我正在嘗試為庫編寫測試嗎?孫
pragma solidity 0.4.21; library A{ function functionName(uint256 a, uint256 b) public pure returns(bool){ return (a == b); } }
測試A.sol
import "truffle/Assert.sol"; import "truffle/DeployedAddresses.sol"; import "../contracts/A.sol"; contract TestA { function test_functionName() { A a = A(DeployedAddresses.A()); bool expected = false; Assert.equal(a.functionName(1, 0), expected, "Comparing: 1 is not 0"); } }
deploy_contracts.js
var A = artifacts.require("A"); module.exports = function(deployer) { deployer.deploy(A); };
您應該嘗試導入為:- import { A } from “../contracts/A.sol”; 並使用 A.functionName()。因為在 Solidity 中,“庫”是一種特殊類型的合約,專門用於編寫可重用的程式碼。您可以將其視為任何 OOP 語言中的靜態函式。願這對你有所幫助。