después de ejecutar la prueba de trufa de Commande, recibí este error
TypeError: _character.getName no es una función
mi archivo de prueba
let Game = artifacts.require("./Game.sol"); let Character = artifacts.require("./Character.sol"); const PROVIDED_NAME = "TEST"; contract("Game", (accounts) => { let creatorAccount = accounts[0]; it("should create a character with the name provided", () => { let _game; let _character; return Game.deployed() .then(instance => { _game = instance; return _game.createCharacter(PROVIDED_NAME, { from: creatorAccount }); }) .then(result => { return _game.getCharacter(); }) .then(character => { _character = Character.at(character); return _character.getName(); }) .then(name => { assert.equal(name, PROVIDED_NAME, "Failed to create a character with the provided name"); }); }); });y este es mi archivo Character.sol
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; contract Character { string private _name; constructor(string memory name) public { _name = name; } function getName() public view returns (string memory) { return _name; } }Estoy usando
Truffle v5.5.20 (núcleo: 5.5.20) Ganache v7.2.0 Solidity - 0.8.15 (solc-js) Nodo v16.15.1 Web3.js v1.7.4
Creo que el problema está en la forma en que los necesita. no debe pasar la ruta del directorio, sino pasar el nombre de los contratos, truffle los asignará.
let Game = artifacts.require("NameOfGamecontract"); let Character = artifacts.require("NameOfCharacterContract");