【问题标题】:Solidity, Mocha AssertionError: Unspecified AssertionErrorSolidity, Mocha AssertionError: Unspecified AssertionError
【发布时间】:2021-05-29 19:23:31
【问题描述】:

我正在学习如何使用 mocha 对可靠性代码进行单元测试,我从简单的代码中得到了这个错误:

contract hello{
    function returnString() public pure returns(string memory){
        return "this";
    }
}

在没有 try/catch 的情况下进行测试:

const Hello = artifacts.require('hello');

contract('hello', () => {

    it('should return string', async () => {
        const hello = await Hello.deployed();
        const result = hello.returnString();
        assert(result == "this");
    });
});

我收到此错误:

  Contract: hello
    1) should return string
    > No events were emitted


  0 passing (291ms)
  1 failing

  1) Contract: hello
       should return string:
     AssertionError: Unspecified AssertionError
      at Context.<anonymous> (test/Hello.js:15:3)
      at processTicksAndRejections (node:internal/process/task_queues:94:5)

但是当我用 try/catch 测试它时:

const Hello = artifacts.require('hello');

contract('hello', () => {
    it('should return string', async () => {
        const hello = await Hello.deployed();
        const result = hello.returnString();
        
        try { 
            assert(result === "this");
        }
        catch (e){
            console.log(e);
        }
        
    });
});

我得到了这个:(✓ should return string 是绿色的,表示它通过了测试)

  Contract: hello
AssertionError: Unspecified AssertionError
    at Context.<anonymous> (/home/kaneda/Documents/learn/testing/contract_1/test/Hello.js:18:4)
    at processTicksAndRejections (node:internal/process/task_queues:94:5) {
  showDiff: false,
  actual: null,
  expected: undefined
}
    ✓ should return string


  1 passing (143ms)

那么,这是什么行为,它实际上是通过测试但抛出错误还是什么?我有点困惑。

【问题讨论】:

    标签: javascript testing mocha.js solidity


    【解决方案1】:

    哦,愚蠢的错误,我在hello.returnString()之前忘记了await

    const result = hello.returnString();

    这解释了代码失败的原因,但我仍然不明白 try/catch 行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-28
      • 2015-06-27
      • 1970-01-01
      • 2017-04-19
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      相关资源
      最近更新 更多