# sendTxのテストシナリオ ###### tags: `テスト設計` ```javascript= describe("sendTx", () => { describe("transferができる", () => { it("ERC20のtranferができる", () => {}); it("持ってないERC20のtranferはできない", () => {}); it("ERC721のtranferができる", () => {}); it("持ってないERC721のtranferはできない", () => {}); it("ERC1155のtranferができる", () => {}); it("持ってないERC1155のtranferはできない", () => {}); }); describe("user state zkpができる", () => { it("onetime addressが使われてないことを証明する", () => {}); it("onetime addressがprivateKeyから算出されている", () => {}); it("onetime addressがprivateKeyから算出されていない場合failする", () => {}); it("onetime addressが使われていたらfailする", () => {}); it("onetime addressが使われてない証明を検証する", () => {}); it("前回のstate diffを解決していることを証明する", () => {}); it("前回のstate diffを解決していなければfailする", () => {}); it("前回のstate diffを解決していることを証明を検証する", () => {}); it("自分のstate valueをVerkle Treeで証明できる", () => {}); it("自分のstate valueをVerkle Treeで証明できない場合はfailする", () => {}); }); describe("signedTxのzkpができる", () => { it("signatureがある", () => {}); it("signatureがない場合failする", () => {}); it("signatureのrecoveryするとユーザーのpublicKeyと一致する", () => {}); it("署名が正しいことを検証する", () => {}); }); }); ```