SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Yahoo! UI Library Ver.3 を使ってみよう

Yahoo! UI Library3(YUI3)のDeveloper Tools

Yahoo! UI Library Ver.3 を使ってみよう(6)

  • X ポスト
  • このエントリーをはてなブックマークに追加

型や値の確認

 型や値の確認を行う関数をまとめたモジュールTestの説明を行います。先に説明したConsoleを使用して、テストの結果を表示します。変数をテストする例題を見て行きましょう。以下、例題起動時の画面です。

図5:例題起動時画面
図5:例題起動時画面

 まず、Y.Test.Case()でテストケースを作成して、Y.Test.Suite()で登録を行い、Y.Test.Runnerに追加してY.Test.Runner.run()で実行するという順序になります。リスト5を見てください。

[リスト5]Testの例題(DT_Test.html)
YUI().use("console", "test", function(Y) {
	//テストケース
    var DataTestCase = new Y.Test.Case({
	name : "DataTest",		//(1)
	setUp : function () {		//(2)
            this.data = {
               name: "山田花子",
               birth: 1988
            };
        },
	tearDown : function () {	//(3)
	   delete this.data;
	},
        testName : function () {	//(4)
            var Assert = Y.Assert;
            Assert.isObject(this.data);
            Assert.isString(this.data.name);
            Assert.areEqual("山田花子", this.data.name);
        },
        testYear : function () {	//(5)
            var Assert = Y.Assert;
            
            Assert.isObject(this.data);
            Assert.isNumber(this.data.birth);
            Assert.areEqual(1998, this.data.birth);
        }
    });
    var Suite1 = new Y.Test.Suite("Suite1");
    Suite1.add(DataTestCase);		//(6)

    //console生成
    var r = new Y.Console({		//(7)
    	newestOnTop:false,
        style: 'separate', 
        height:'400px'
    }).render();
    
    //Test.Runnerに 追加
    Y.Test.Runner.add(Suite1);		//(8)

    //実行
    Y.Test.Runner.run();		//(9)
    
});
</script>
</head>
<body  class="yui3-skin-sam">
<h4>Test</h4>
</body>

 (1)から(5)はテストケースの作成です。(1)のテストケース名nameはlogウィンドウなどに表示されるものなので、必ず書く必要があります。setUpでテストに必要な情報を初期化し、tearDownでメモリーを解放します。テストの内容を指定するメソッドの名前の前には必ず"test"をつけます。(4)(5)のY.Assertで使用できるメソッドを以下の表に示します。

 ()内の引数にはテストしたいオブジェクト(関数や変数)を設定します。

Y.Assertのメソッド
メソッド 概要
isArray(Object) 配列か
isBoolean(Object) ブール値か
isFunction(Object) 関数か
isNumber(Object) 数値か
isObject(Object) オブジェクトか
isString(Object) 文字列か
isFalse(Object) 偽か
isTrue(Object) 真か
isNull(Object) NULL値か
areEqual(Object,Object) 値が等しいか

 (6)でY.Test.Suiteに追加し、(8)でY.Test.Runnerに追加して(9)の.runで実行させます。結果は(7)で指定したConsoleに表示されます。

テスト用仮メソッドや仮プロパティの作成

 モジュールTextには、実際にテストをしたい場所以外のデータを仮に作成して、テストできるようサポートしたMockObjectが用意されています。使い方をみて行きましょう。データ読み込みの関数を作成し、読み込み部分に仮のデータを設定します。実行画面を図6に示します。

図6:例題実行画面
図6:例題実行画面

 以下のリスト6を見てください。

[リスト6]MockObjectの例題(DT_TestMock.html)
function runTest(gr){		//(1)
	var a=gr.name(1);
	alert(a);
}
YUI().use("console", "test", function(Y) {

	//関数のテスト
    var DataTestCase = new Y.Test.Case({
	    name : "functionTest",
	    
	    testfunction:function(){
		    var mockChek= Y.Mock();	//(2)
			Y.Mock.expect(mockChek,{	//(3)
				method: "name",
				args:[1],
				returns:"山田花子"
			});
			runTest(mockChek);	//functionテスト
			 Y.Mock.verify(mockChek);	//(4)
		}
    });
    var Suite1 = new Y.Test.Suite("Suite1");
    Suite1.add(DataTestCase);

    //console生成
    var r = new Y.Console({
    	newestOnTop:false,
        style: 'separate', 
        height:'400px'
    }).render();
    
    //Test  Runnseに 追加
    Y.Test.Runner.add(Suite1);

    //実行
    Y.Test.Runner.run();
    
});
</script>
</head>
<body  class="yui3-skin-sam">
<h4>TestMock</h4>
</body>

 (1)はテスト用関数です。引数で読み込むオブジェクトのnameメソッドをMockObjectで作成しています。(2)でmockChekを宣言し、Y.Mock.expectで仮設定を行っています。(3)はメソッドの時、methodとargsは必須です。必要により、returnsを追加してください。プロパティの時はpropertyとvalueになります。エラーの時は(4)でエラー情報がlogウィンドウに表示されます。以降のリストはリスト5と同じです。

次のページ
まとめ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Yahoo! UI Library Ver.3 を使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 横塚 利津子(ヨコツカ リツコ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5239 2010/06/30 14:27

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング