8
UUID.js を移植してみた フレームワークチーム

UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

Embed Size (px)

DESCRIPTION

2012/05/12 の Dart ハッカソンで、UUIDフレームワークを作成した際の資料です。 作成したコードは https://github.com/zaki50/uuid_dart にあります。

Citation preview

Page 1: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

UUID.js を移植してみたフレームワークチーム

Page 2: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

メンバーUUID 必要だよね UUID.js

移植すればいいんじゃ

あのrandom() 使ってUUIDとかないわー

テスト~

dadoop 作りたかったけど心折れた。テスト書いた。

Page 3: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

作ったもの

UUID ライブラリ

Page 4: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

使用技術

• UUID 作成(独自実装)

• ランダムジェネレータ(独自実装)

• テスティングフレームワーク(独自実装)

Page 5: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

UUID

• RFC 4122 A Universally Unique IDentifier (UUID) URN Namespace

• Time-based (v1)

• Name-Based MD5 (v3)

• random(v4)

• Name-based SHA-1(v5)

Page 6: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

BDD TestFramework

• JavaScriptのJasmineが好き

• 同じ様な見た目のを作った

• ServerにもClientにも使えるよ!

Page 7: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

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();}

Page 8: UUID.js を Dart に移植してみたついでに BDDなテスティングフレームワークもつけてみた

デモ