Upload
makoto-yamazaki
View
624
Download
0
Embed Size (px)
DESCRIPTION
2012/05/12 の Dart ハッカソンで、UUIDフレームワークを作成した際の資料です。 作成したコードは https://github.com/zaki50/uuid_dart にあります。
Citation preview
UUID.js を移植してみたフレームワークチーム
メンバーUUID 必要だよね UUID.js
移植すればいいんじゃ
あのrandom() 使ってUUIDとかないわー
テスト~
dadoop 作りたかったけど心折れた。テスト書いた。
作ったもの
UUID ライブラリ
使用技術
• UUID 作成(独自実装)
• ランダムジェネレータ(独自実装)
• テスティングフレームワーク(独自実装)
UUID
• RFC 4122 A Universally Unique IDentifier (UUID) URN Namespace
• Time-based (v1)
• Name-Based MD5 (v3)
• random(v4)
• Name-based SHA-1(v5)
BDD TestFramework
• JavaScriptのJasmineが好き
• 同じ様な見た目のを作った
• ServerにもClientにも使えるよ!
BDD TestFramework#import('./teaolive/teaolive.dart');#import('./teaolive/teaolive_html_reporter.dart');#import('./uuid/uuid.dart');
void main(){ RegExp uuidPattern = new RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\$'); describe("test pattern sanity", () { it("matches UUID syntax", () { expect(uuidPattern.hasMatch('f81d4fae-7dec-11d0-a765-00a0c91e6bf6')).toBe(true); }); }); describe("UUID test", () {
it("suits UUID syntax", () { UUID uuid = new UUID_v0(); expect(uuidPattern.hasMatch(uuid.generate())).toBe(true); });
it("v1 suits UUID syntax", () { UUID uuid = new UUID_v1(); expect(uuidPattern.hasMatch(uuid.generate())).toBe(true); });
it("v4 suits UUID syntax", () { UUID uuid = new UUID_v4(); expect(uuidPattern.hasMatch(uuid.generate())).toBe(true); });
it("suits UUID syntax", () { UUID uuid = new UUID(); expect(uuidPattern.hasMatch(uuid.generate())).toBe(true); }); }); describe("sample fail.", (){ it("success", (){ expect(1).toBe(1); }); it("failure...", (){ expect(1).toBe(2); }); });
setTeaoliveReporter(new TeaoliveHtmlReporter()); teaoliveRun();}
デモ