読書メモ:Game Development with Rust and WebAssembly (Chapter 9)
概要
サンプルコードを書いて遊んでたリポジトリは以下
メモ
9章 テスト、デバッグ、パフォーマンス
9.2
- unit test は cargo test で
- 結合テストは wasm-pack test で
9.2.4
- 継ぎ目( seam)
- その場にあるコードを変更することなくプログラムの挙動を変更できる場所
- mockやstubを注入できるポイントの意?
- 効果点(enabling point)
- 継ぎ目への挿入を実現できるコード上の場所
#[cfg(test)]
でuseを入れ替えるやり方
遭遇したエラー
wasm-pack test --headless --chrome
だと失敗する...
Error: non-200 response code: 404
{"value":{"error":"invalid session id","message":"invalid session id","stacktrace":"0 chromedriver 0x000000010500e6b8 chromedriver + 4937400\n1 chromedriver 0x0000000105005b73 chromedriver + 4901747\n2 chromedriver 0x0000000104bc3490 chromedriver + 435344\n3 chromedriver 0x0000000104bf844b chromedriver + 652363\n4 chromedriver 0x0000000104c2af16 chromedriver + 859926\n5 chromedriver 0x0000000104c26c9d chromedriver + 842909\n6 chromedriver 0x0000000104c262e7 chromedriver + 840423\n7 chromedriver 0x0000000104b8d2da chromedriver + 213722\n8 chromedriver 0x0000000104fca2ad chromedriver + 4657837\n9 chromedriver 0x0000000104fcf130 chromedriver + 4677936\n10 chromedriver 0x0000000104fd5def chromedriver + 4705775\n11 chromedriver 0x0000000104fd005a chromedriver + 4681818\n12 chromedriver 0x0000000104fa292c chromedriver + 4495660\n13 chromedriver 0x0000000104b8bd33 chromedriver + 208179\n14 dyld 0x0000000205c1441f start + 1903\n"}}
error: test failed, to rerun pass `--lib`
wasm-pack test --chrome
だと成功する- よくみたら chromedriver 入ってなかった...
brew install chromedriver
で解決
9.3
- wasm をデバッガでデバッグする方法はない
- ログ/スタックトレース/リントで地味にデバッグしていく
- printデバッグはどのような環境でも使用できることが保証されているほぼ唯一のデバッグ手法
- 製品版ではログを全て削除する必要がある
- webシステムだと考えなくていい観点...
読書メモ:Game Development with Rust and WebAssembly (Chapter 9)