Slide 1

Slide 1 text

Meteor 1.3 Tes,ng 3/6 Meteor ษڧձ in ΪʔΫΦϑΟεܙൺण େ৓ ৴޹ (OSHIRO, Nobutaka)

Slide 2

Slide 2 text

Who? • גࣜձࣾJ-hack CTO݉ϓϩάϥϚʔ • MeteorΞϓϦاըɾ։ൃɾӡ༻ɾอक • Meteorྺ 10ϲ݄ • Twi5er: @notanota • GitHub: @nobutakaoshiro • Qiita: @n-oshiro

Slide 3

Slide 3 text

My Recent Ac*vity • 2016 • 1/23: Meteorษڧձൃද • 1/30: Meteor iOSΞϓϦ։ൃϋϯζ Φϯओ࠵ • 3/6: Meteorษڧձൃද <- ͍·͜͜

Slide 4

Slide 4 text

Meteor 1.3 Tes,ng

Slide 5

Slide 5 text

ຊ೔ͷൃද಺༰͸ Meteor 1.3-beta.12 Λجʹ͍ͯ͠·͢ɻ Metoer 1.3 ਖ਼ࣜϦϦʔε࣌ʹ͸࢓༷͕มΘΔՄೳੑ͕͋Γ·͢ɻ

Slide 6

Slide 6 text

ΞδΣϯμ • ςετͱ͸ • ςετछྨʹ͍ͭͯ • Tes%ng in Meteor 1.3ɹ • Full app tes%ng & Module tes%ngɹ • DEMOɹ

Slide 7

Slide 7 text

ςετͱ͸ ιϑτ΢ΣΞςετʢso#ware testʣ͸ɺίϯϐϡʔλͷϓϩά ϥϜΛ࣮ߦ͠ɺਖ਼͘͠ಈ࡞͢Δ͔ɺ໨ඪͱͨ͠඼࣭ʹ౸ୡ͍ͯ͠ Δ͔ɺҙਤ͠ͳ͍ಈ࡞Λ͠ͳ͍͔Ͳ͏͔Λ֬ೝ͢Δ࡞ۀͷ͜ͱͰ ͋Δɻ — ιϑτ΢ΣΞςετ - Wikipedia

Slide 8

Slide 8 text

ςετΛॻ͘͜ͱͰ... • ߴ඼࣭ͳ(όάͷগͳ͍)ঢ়ଶΛҡ࣋Ͱ͖Δ • ίʔυͷमਖ਼͕༰қʹͳΔ • ࣗ৴Λ࣋ͬͯίʔυͷϦϑΝΫλϦϯά͕Ͱ͖Δ • όάͷൃݟʹͭͳ͕Δ • ظ଴͞ΕΔಈ࡞ΛυΩϡϝϯτԽͰ͖Δ

Slide 9

Slide 9 text

ςετछྨ(1/2) • ୯ମςετ (Unit test) • ͋ΔϞδϡʔϧ͕ਖ਼͘͠ಈ࡞͢Δ͔Λ͔֬ΊΔ • ݁߹ςετ(Integra.on test) • ෳ਺Ϟδϡʔϧ͕ڠௐͯ͠ਖ਼͘͠ಈ͘͜ͱΛ͔֬ΊΔ • ड͚ೖΕςετɺe2eςετ(Acceptance or end-to-end test) • ΞϓϦશମͷಈ࡞Λϒϥ΢βϨϕϧͰݕূ͢Δ

Slide 10

Slide 10 text

ςετछྨ(2/2) • ෛՙςετ (Load test, Stress test) • ෛՙΛ͔͚ΔͱͲ͏ͳΔͷ͔ɺͲ͜·Ͱ଱͑ΒΕΔͷ͔Λ֬ ೝ͢Δ • ܧଓతΠϯςάϨʔγϣϯςετ (Con0nuous Integra0on test) • ఆظతɺίϛοτ୯ҐͰςετΛ࣮ߦ͢Δ͜ͱͰෆ۩߹Λૣ ظൃݟ͠ɺΤϥʔ͕ແ͍ঢ়ଶΛอͭ

Slide 11

Slide 11 text

Tes$ng in Meteor 1.3

Slide 12

Slide 12 text

Tes$ng in Meteor 1.3 (1/3) • meteor create ࣌ʹ package.json ͱ tests.js ͕ࣗಈੜ੒͞Ε ΔΑ͏ʹͳͬͨ • Meteor 1.3 Ͱ͸σϑΥϧτͰ mocha ͱ Chai ͕࢖༻Մೳ • prac7calmeteor:mocha package ͷ௥Ճ • prac7calmeteor:chai package ΋Ұॹʹಋೖ͞ΕΔ

Slide 13

Slide 13 text

Tes$ng in Meteor 1.3 (2/3) // tests.js import assert from "assert"; import { name as appName } from "./app.js"; describe("app", () => { it("should export its name", () => { assert.strictEqual(appName, "app"); }); });

Slide 14

Slide 14 text

Tes$ng in Meteor 1.3 (3/3) • Meteor 1.3 ͷ Module ػೳͰςετ͕؆୯͔ͭಡΈ΍͘͢ॻ͚ Δ • ৽͍͠ meteor test ίϚϯυͷ௥Ճ • Meteor 1.3 ͔Β tests/ σΟϨΫτϦ֎ʹஔ͍ͯ͋Δ *.app- test[s].*, *.tests.* ͷϑΝΠϧ΋ࣗಈతʹಡΈࠐ·Εͳ ͍Α͏ʹͳͬͨ

Slide 15

Slide 15 text

Full app tes*ng & Module tes*ng

Slide 16

Slide 16 text

# Full app testing (integration test) meteor test --full-app --driver-package # Module testing (Unit test) meteor test --driver-package

Slide 17

Slide 17 text

DEMO

Slide 18

Slide 18 text

# Install Meteor curl https://install.meteor.com/ | sh # Create Meteor app meteor create app --release 1.3-beta.12 cd app # Install node_modules npm install # Run meteor app meteor # Run meteor test meteor test --driver-package practicalmeteor:mocha --port 3100 ./ meteor test --full-app --driver-package practicalmeteor:mocha --port 3100 ./

Slide 19

Slide 19 text

Conclusion • Meteor 1.3 ͔Β mocha ͱ chai ͕σϑΥϧτͰར༻Մೳʹ • Module ػೳͰςετ͕ॻ͖΍͘͢ͳͬͨ • Meteor 1.3 ͷϕʔλ൛ͷͨΊɺࠓޙ࢓༷͕มߋ͞ΕΔ͔΋͠Ε ͳ͍ͷͰࠓޙͷಈ޲ʹ஫໨

Slide 20

Slide 20 text

References • Meteor Guide v1.3 Migra2on (Dra6) h9p:/ /guide.meteor.com/v1.3/1.3-migra2on.html • Meteor Guide tes2ng.md (Dra6) h9ps:/ /github.com/meteor/guide/blob/tes2ng-modules-content/ content/tes2ng.md • GitHub - meteor/todos h9ps:/ /github.com/meteor/todos

Slide 21

Slide 21 text

ࠂ஌

Slide 22

Slide 22 text

ʦ࿕ใʧ͜͏΍ͬͯReactΛMeteor1.3Ͱ࢖͏ΜͩϋϯζΦϯʂ h"p:/ /meteor-tokyo.connpass.com/event/27388/ 3/26(౔) 13:00-17:30 ։࠵༧ఆ

Slide 23

Slide 23 text

Q&A

Slide 24

Slide 24 text

THANK YOU!