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

IIS URL Rewrite のユニットテストをしよう! /iis-url-rewrite-unit-test

D7cdf68e7d8699d99ff2e752458e71fb?s=47 minato128
October 07, 2017

IIS URL Rewrite のユニットテストをしよう! /iis-url-rewrite-unit-test

.NET Conf 2017 Tokyo, Japan の LT
https://csugjp.connpass.com/event/66004/

D7cdf68e7d8699d99ff2e752458e71fb?s=128

minato128

October 07, 2017
Tweet

More Decks by minato128

Other Decks in Programming

Transcript

  1. IIS URL Rewrite の ユニットテストをしよう! 株式会社一休 宿泊事業本部 開発部 飯迫 正貴

    2017/10/07 LT
  2. IIS URL Rewrite とは?

  3. IIS URL Rewrite とは? • URL Rewrite Module • https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-

    module/using-the-url-rewrite-module • 設定に書いたルールに従ってURLを書き換えてくれる
  4. 課題

  5. 課題 • 便利な反面、継ぎ足し続けるとわけが分からなくなる • 負債化しやすい • 全体が理解できず、変更すると他が壊れるのではという恐怖 • ジェンガ状態 •

    気軽にリファクタリングできない
  6. www.ikyu.com/rewrite.config

  7. きっかけ • ある日の会議の雑談 • わたし「そういえばRewriteがバグりやすいんですよねえ」 • CTO「はてなでは rewrite のテスト書いてたよ」 •

    http://d.hatena.ne.jp/onishi/20101017/1287277579 • 数日後 • しばやん「テスト用のライブラリ作りました」 • http://blog.shibayan.jp/entry/20160620/1466392651
  8. IIS Express TestKit

  9. IIS Express TestKit • Rewrite Rule のテストが書けるハイパー便利ツール • Outbound Rule

    も対応 • OSS • https://github.com/shibayan/iisexpress-testkit
  10. IIS Express TestKit

  11. Project Example

  12. Rewrite Rule Example

  13. Outbound Rule Example

  14. 運用してみた

  15. 運用してみた • 壊れるのを恐れず、気軽に変更できるようになった • 最高 • CI に Rewrite のユニットテストを追加

    • 不正なRewriteがリリースされる事故がなくなった • データセンターからクラウドに移行したときにも活躍 • PaaSに乗せるためアプリを分割したらテストが通らなくなった • 通らなくなったもの=分割してなくなった部分のテスト => Rewriteも分割 • ユニットテストを書いたことで参照されてないルールがあぶり 出された • そしてリファクタリング
  16. 参照されてないルール

  17. まとめ • IIS の URL Rewrite もユニットテストが書ける! • URL Rewrite

    運用で困っている人は今すぐインストールして書 きましょう! • Install-Package IisExpressTestKit