Practice.sol
L 構造体Clientのclientsという配列に格納して、excesise関数でweightを-2として返却するコントラクトです。
pragma solidity >= 0.4.0 < 0.7.0;
contract Practice {
struct Client {
string name;
string gender;
uint256 weight;
uint256 height;
}
Client[] public clients;
function register(string memory _name, string memory _gender, uint256 _weight, uint256 _height) public returns(uint256 id) {
id = clients.push(Client(_name, _gender, _weight, _height)) - 1;
return id;
}
function excesise() public returns (uint256 newWeight){
newWeight = clients[0].weight - 2;
return newWeight;
}
}
practice_test.js
describe("practice()", () => {
it("returns excesized weight", async() => {
const practice = await PracticeContract.deployed();
const expected = 63;
await practice.register("yamada", "male", 65, 175);
const actual = await practice.excesise.call();
assert.equal(actual, expected, "Weight should be 63");
})
})
Contract: Practice
✓ has been deployed successfully
practice()
✓ returns weight (124ms)
2 passing (184ms)