我使用的是具有摩卡和麦克风的松露。 Chai默认包括在内。
文件树:
├── test
│ ├── ManagedWallet.js
│ ├── AnotherTest.js
│ └── AndAnotherTest.js
└── truffle.js
这是我的测试文件之一:
var expect = require('chai').expect;
var managedWallet = artifacts.require("./ManagedWallet.sol");
contract('ManagedWallet', function(accounts) {
it("belongs to customer's account address", async function(){
var contract = await managedWallet.deployed();
var customer_account = accounts[1];
var owner = await contract.owner.call();
expect(owner).to.equal(customer_account);
});
});
由于test
文件夹中有很多测试文件,我需要在所有测试文件中加上var expect = require('chai').expect;
行。
我有没有办法让全局expect
功能可用,而不需要在我的所有测试文件中都有var expect = require('chai').expect;
行?
我尝试将var expect = require('chai').expect;
行放在truffle.js文件中(在module.exports
之上),但它没有工作,我在运行测试时出现ReferenceError: expect is not defined
错误。
我的truffle.js文件示例(位于项目的根文件夹中):
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 7545,
network_id: "*" // match any network
}
}
};
答案 0 :(得分:0)
这是我的.mocharc.json文件,可启用此功能:
{
"spec": "src/**/*.test.ts",
"require": ["esm", "ts-node/register", "chai/register-assert", "chai/register-expect", "chai/register-should"],
"file": "./test-setup.cjs",
"recursive": true
}