Practice.sol
contract Practice { function hello() external pure returns(string memory) { return "Hello, World!"; } function tax(uint256 price) public pure returns(uint256 newPrice){ newPrice = price * 11 / 10; return newPrice; } }
practice_test.js
describe("practice()", () => { it("returns tax in price", async() => { const practice = await PracticeContract.deployed(); const expected = "110"; const actual = await practice.tax(100); assert.equal(actual, expected, "should be 110"); }) })
$ truffle test
Compiling your contracts…
===========================
> Compiling ./contracts/Migrations.sol
> Compiling ./contracts/Practice.sol
> Artifacts written to /tmp/test-202209-108928-12xhvrv.xr0d
> Compiled successfully using:
– solc: 0.5.16+commit.9c3226ce.Emscripten.clang
Contract: Practice
✓ has been deployed successfully
practice()
✓ returns ‘Hello, World!’
practice()
✓ returns tax in price
3 passing (123ms)
taxのmultiplyは price * 1.1; とするとエラーになるので、price * 11 / 10;としないといけない。
なるほど、中々激しい。