所以我有这个设置:truffle
和ganache-cli
我正在向我的合同发送一些以太币,这是我合同的相关部分:
mapping(address => uint256) public balanceOf;
function () payable public {
uint amount = msg.value;
balanceOf[msg.sender] += amount;
}
在松露中,这就是我发送以太的方式。
it("Test if can be payed", function(){
return web3.eth.sendTransaction({
from:fromAddr,
to:MyContract.address,
value:amountToSend
}).then(function(res){
expect(res).to.not.be.an("error"); // test passed
});
});
it("Test if contract received ether", function(){
return web3.eth.getBalance(MyContract.address,
function(err, res){
expect(parseInt(res)).to.be.at.least(1000000000000000000); // test passed
});
});
it("Catch if balanceOf "+fromAddr, function(){
return sale.balanceOf.call(fromAddr).then(function(res){
expect(parseInt(res)).to.be.at.least(1); // fails the test
});
});
我做对了吗?测试失败的原因可能是什么?松露测试输出:
AssertionError: expected 0 to be at least 1
+ expected - actual
-0
+1
如果需要,我可以提供更多信息。
更新:澄清sale
哪个是全局变量。
it("Test if MyContract is deployed", function(){
return MyContract.deployed().then(function(instance){
sale = instance;
});
});