Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's New in Testing!!!

What's New in Testing!!!

WWDC2017のほぼ同名のセッションの内容について簡単にまとめました。

Shingo Tamaki

July 26, 2017
Tweet

More Decks by Shingo Tamaki

Other Decks in Technology

Transcript

  1. What's New in
    Testing!!!

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. ࣗݾ঺հ
    ۄ৓৴ޛ
    iOS Engineer!
    ޷͖ͳframework͸HomeKitͱXCTestͰ͢
    झຯ"
    ిࢠ޻࡞⚡
    ےτϨ$
    ΨδΣοτ%

    View Slide

  4. Parallel Testing
    Localization
    Block-based test teardown
    Multi-app Testing
    FirstMatch API
    Activities
    Attachments
    Async Testing (Xcode8.3)

    View Slide

  5. Parallel Testing
    https://developer.apple.com/videos/play/wwdc2017/102/

    View Slide

  6. Localization
    ςετ࣌ͷLanguage/Regionࢦఆ͕ՄೳʹͳΓ·ͨ͠ɻ
    xcodebuildͰ͸-testLanguage,-testRegionͰࢦఆՄೳ

    View Slide

  7. Block-based test teardown

    View Slide

  8. Multi-app Testing

    View Slide

  9. Multi-app Testing

    View Slide

  10. FirstMatch API

    View Slide

  11. FirstMatch API

    View Slide

  12. Activities

    View Slide

  13. ͜Ε·Ͱͷςετ

    View Slide

  14. ͜Ε·Ͱͷςετ

    View Slide

  15. ͜Ε͔Βͷςετ

    View Slide

  16. ࣮ߦϩά͔Βݟͨҧ͍

    View Slide

  17. Attachment

    View Slide

  18. Screenshots

    View Slide

  19. Screenshots

    View Slide

  20. Attachment Lifetime Policies

    View Slide

  21. Async Testing (Xcode 8.3)

    View Slide

  22. XCTWaiter
    • XCTWaiterͱͯ͠΢ΣΠτॲཧʹؔ͢Δ෦෼͕XCTestCase͔
    Β෼཭͠·ͨ͠ɻ
    • ର৅ͱͳΔexpectationΛ໌ࣔతʹෳ਺Ͱ͖ΔΑ͏ʹͳΓ·͠
    ͨɻ
    • XCTWaiterDelegate
    • XCTWaiter.Result

    View Slide

  23. XCTWaiter

    View Slide

  24. XCTWaiter

    View Slide

  25. XCTWaiter
    Explicitly expectation

    View Slide

  26. XCTWaiter.Result
    XCWaiter.Result͕ఆٛ͞Εɺ࣮ߦ݁Ռͱͯ͠ҎԼͷΑ͏ͳ΋ͷ
    ͕ఆٛ͞Ε͍ͯ·͢ɻ
    • completed
    • timedOut
    • incorrectOrder
    • invertedFulfillment
    • interrupted

    View Slide

  27. XCTWaiterDelegate
    • nestedWaiter(_:wasInterruptedByTimedOutWaiter:)
    • waiter(_:didTimeoutWithUnfulfilledExpectations:)
    • waiter(_:didFulfillInvertedExpectation:)

    waiter(_:fulfillmentDidViolateOrderingConstraintsFor:requir
    edExpectation:)

    View Slide

  28. XCTTestExpectation
    • expectedFulfillmentCount
    • isInverted
    • enforceOrder

    View Slide

  29. isInverted

    View Slide

  30. expectedFulfillmentCount

    View Slide

  31. enforceOrder

    View Slide

  32. XCTTestExpectation
    • ৽͍͠Expectation͕૿͑·ͨ͠ɻ
    • XCTKVOExpectation
    • XCTNSNotificationExpectation
    • XCTNSPredicateExpectation

    View Slide

  33. https://
    developer.apple.com
    /videos/play/
    wwdc2017/409/

    View Slide

  34. Ҏ্

    View Slide