Truffle

在松露測試中指定交易地址

  • July 27, 2018

我想指定我在松露測試中執行交易的地址。

我的測試大概是這樣的:

contract('Test contract', async (accounts) => {

   let contract;

   before(async () => {
       contract = await Contract.new();
   });

   it("Check something...", async () => {
       await studentV1.addPerson("Jon", "Doe");
       await studentV1.addPerson("Max", "Musterman");

       //....
   });
});

契約方法的addPerson(...)工作原理大致如下:

function addPerson(string _firstname, string _lastname) public {
   persons[msg.sender] = Person(_firstname, _lastname);
}

現在我想await studentV1.addPerson("Jon", "Doe");用 withaccount[0]和下面的行呼叫我的測試,account[1]這樣我的地圖也會得到兩個不同的條目。我怎樣才能做到這一點?預設情況下,truffle test 用於每個事務和呼叫accounts[0]

我正在使用truffle develop在啟動時自動創建 10 個帳戶的鏈。

這是使用帳戶 i 呼叫方法的一般公式:

await contract.yourFuncitonName(arg1,arg2,{ from: accounts[i] })

帳末通知

$$ $$ 你最終得到:

await studentV1.addPerson("Jon", "Doe",{ from: accounts[0] });
await studentV1.addPerson("Max", "Musterman",{ from: accounts[1] });

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