問題
dart:html
に依存したライブラリコードのテストは普通にやると
The built-in library 'dart:html' is not available on the stand-alone VM.
というふうに怒られる。
解決方法
1. テストコード側で準備
package:unittest/html_config.dart
をimportして、mainメソッドの最初にuseHtmlConfiguration();
する。
import "package:unittest/unittest.dart";
import "package:unittest/html_config.dart";
void main() {
useHtmlConfiguration();
test("html test", () {
...
});
}
2. テスト結果表示用のHTMLファイルを配置する
テスト表示用のHTMLファイルを用意(html_test.html
とする)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>html_test</title>
</head>
<body>
<script type="application/dart" src="html_test.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>
ポイントはhtml_test.dart
をHTML内で呼び出すことです。
3. $ pub serve
する
ちゃんとtest
ディレクトリにテストコードを書いていれば、
Serving my_app web on http://localhost:9000
Serving my_app test on http://localhost:9001
のようにログが流れるはず。
4. テスト用ページにアクセスする
先ほど配置したhttp://localhost:9001/html_test.html
をブラウザで開く。
これでテスト結果がHTML形式で出力される。