- ファイルは2つ:テスト用とリファレンス用
- テスト用:テストされる機能を利用する
- リファレンス用:別の機能で同じ表示をする
- 手動テストも自動テストも対応する
- ブラウザ・プラットフォームに依存しない
CSSトランスフォームの仕様を
translate()
関数を利用してテストする事例
仕様リンク:
http://www.w3.org/TR/css3-transforms/#transform-property
http://www.w3.org/TR/css3-transforms/#two-d-transform-functions
テストファイル
<!DOCTYPE html>
<html>
<head>
<title>CSS Transforms Test: transform property with translate function</title>
. . .
リファレンスファイル
<!DOCTYPE html>
<html>
<head>
<title>CSS Transforms Reference file</title>
. . .
テストファイル
<!DOCTYPE html>
<html>
<head>
. . .
<link rel="author" title="Your Name" href="mailto:youremail@address.com">
. . .
リファレンスファイル
<!DOCTYPE html>
<html>
<head>
. . .
<link rel="author" title="Your Name" href="mailto:youremail@address.com">
. . .
テストファイルのみ
<!DOCTYPE html>
<html>
<head>
. . .
<link rel="help" href="http://www.w3.org/TR/css3-transforms/#transform-property">
<link rel="help" href="http://www.w3.org/TR/css3-transforms/#two-d-transform-functions">
. . .
テストファイルのみ
<!DOCTYPE html>
<html>
<head>
. . .
<link rel="match" href="reference/ttwf-reftest-tutorial-ref.html">
. . .
テストファイルのみ
<!DOCTYPE html>
<html>
<head>
. . .
<meta name="assert"
content="This transform moves the element by 100 pixels in both the X and Y directions.">
. . .
トランスフォームかけられた状態のエレメント
<style type="text/css">
.greenSquare {
position: absolute;
background: green;
top: 0;
left: 0;
width: 100px;
height: 100px;
transform: translate(100px,100px);
}
. . .
</style>
トランスフォームをかけないリファレンス エレメント
<style type="text/css">
.greenSquare {
position: absolute;
background: green;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
}
</style>
テストがフェールする場合に見えるエレメント
<style type="text/css">
. . .
.redSquare {
position: absolute;
background: red;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
}
</style>
テストがフェールした場合
テストのパス条件を簡単に説明する文章
テスト・リファレンスファイル両方
<body>
<p>The test passes if there is a green square and no red.</p>
. . .
</body>
テストファイル
<body>
. . .
<div class="redSquare"></div>
<div class="greenSquare"></div>
</body>
リファレンスファイル
<body>
. . .
<div class="greenSquare"></div>
</body>
- CSS機能によってベンダープレフィックスが必要
- プレフィックスがないとテストのパスケースが確認できない場合に使う
- ただし、テストケースをW3Cに提出する前にプレフィックスを外すこと
.greenSquare {
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 100px;
-webkit-transform: translate(100px,100px);
-moz-transform: translate(100px,100px);
-ms-transform: translate(100px,100px);
-o-transform: translate(100px,100px);
background: green;
}
テスト作りの間にはこのスクリプトがお勧め:
http://leaverou.github.com/prefixfree
prefixfree.jsapi.js はプレフィックスを付けないJS APIsのテストに使える:
https://github.com/LeaVerou/prefixfree/tree/gh-pages/plugins
. . .
<-- W3C テストスイートへの提出する前に外すことはお忘れなく -->
<script src="prefixfree.js"></script>
<script src="plugins/prefixfree.jsapi.js"></script>
. . .