1
私は2つの契約を結んで、1つのファイルにSum.solという名前で書き込みます。総額契約で契約を追加します。私は、クロス・コントラクトの呼び出しをテストしたいだけです。私が2つの契約を1つのファイルに入れなかった場合、トリュフを使った合計のコンパイルは失敗します。しかし、私がテストをすると、結果はとても奇妙です。これがどうして起こったのか分かりません。トリュフを使用して契約交渉でスマート契約をテストする方法は?
pragma solidity ^0.4.6;
contract Add{
function sum(uint x, uint y) returns(uint){
return x+y;
}
}
contract Sum{
function func(uint x, uint y) returns(uint){
Add add = new Add();
uint re = add.sum(x,y);
return re;
}
}
が、私は
contract('Sum', function(accounts) {
it("should return 5 when add 2 and 3", function() {
var sum = Sum.deployed();
return sum.func.call(2,3).then(function(res){
assert.equal(res.valueOf(), 5, "add result is 5");
});
});
});
トリュフではそのためのテストを書いて、トリュフを使用してテスト、そして、結果は次のとおりです。
Compiling Sum.sol...
Contract: Sum
1) should return 5 when add 2 and 3
> No events were emitted
0 passing (455ms)
1 failing
1) Contract: Sum should return 5 when add 2 and 3:
AssertionError: add result is 5: expected '9.1735649321334958107552852973512799782292704141468709142420585807991067901952e+76' to equal 5
at /Users/maiffany/testcoverage/test/add.js:6:14
at process._tickDomainCallback (internal/process/next_tick.js:129:7)
:
私はあなたのテストは、次のコードを使用して渡しました – hxmmm