Estoy consultando los documentos de truffle sobre cómo probar contratos directamente en solidez.
http://truffleframework.com/docs/getting_started/solidity-tests
Me gustaría encontrar una forma de referirme a las cuentas testrpc existentes en mis pruebas. Algo como:
pragma solidity ^0.4.11;
import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../contracts/BAToken.sol";
contract TestBAToken {
function testNewBATokenNotFinalized() {
address companyFundAddress = addresses[1]; // <-- I'd like this to be a predefined testrpc account
address userFundAddress = addresses[2];
uint256 startBlock = block.number - 100;
uint256 endBlock = block.number + 100;
BAToken ba = new BAToken(companyFundAddress, userFundAddress, startBlock, endBlock);
Assert.equal(ba.isFinalized, false, "Token sale shouldn't be finalized upon initialization.");
}
}
es posible? Si no es así, ¿alguien tiene buenas recomendaciones sobre cómo hacer referencia a las cuentas existentes durante la prueba?
Puede agregar directamente las direcciones en el contrato de solidez en lugar de addresses[1]
y addresses[2]
. Si no desea hacer eso, puede declarar algunas variables en el contrato para las direcciones e inicializarlas como parte del constructor como se muestra a continuación.
contract TestBAToken {
address companyFundAddress;
address userFundAddress;
function TestBAToken(address address1, address address2) {
companyFundAddress = address1;
userFundAddress = address2;
}
function testNewBATokenNotFinalized() {
uint256 startBlock = block.number - 100;
uint256 endBlock = block.number + 100;
BAToken ba = new BAToken(companyFundAddress, userFundAddress, startBlock, endBlock);
Assert.equal(ba.isFinalized, false, "Token sale shouldn't be finalized upon initialization.");
}
}
Si desea declarar las direcciones dentro de esa función solo en lugar del contrato completo. Puede pasarlos como argumentos para la testNewBATokenNotFinalized
función.
La forma de implementar depende de cómo le gustaría que fuera el contrato y qué debería hacer.
sangre de cayo
joifsi
sangre de cayo
joifsi