SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
基礎から見直す ASP.NET MVC
   の単体テスト自動化方法
~ Windows Azure 関連もあるかも~
   Microsft MVP for Windows Azure

                          割と普通



                                    1
自己紹介
• 割と普通 ( @normalian )
 – Windows Azure のコミュニティメンバ
   • Japan Windows Azure User Group
     http://r.jazug.jp/
 – わんくま同盟 のコミュニティメンバ
   • http://www.wankuma.com/
 – Microsoft MVP for Windows Azure 2010~




                                           2
本セッションの目的とゴール
• 目的
 – C#/VB.NET で単体テスト自動化するため、どのよ
   うにテストコードを記述すれば良いかを認知
 – 単体テスト自動化を支援するツール、ライブラリ群を
   認知


• ゴール
 – C#/VB.NET で、単体テストの自動化が可能なテ
   ストコードを効率的に記述することができる

                                 3
アジェンダ
 何故 単体テスト自動化 が必要?

  単体テスト自動化 のコツ

  単体テストを効率化するツール群

  まとめ

 参考
何で単体テスト自動化が必要?
• 良く言われるのは以下のメリット
 – 単体テストの工数を削減できる

 – コードの保守・再利用性が向上する

 – コードが綺麗になる




                      5
単体テストの工数を削減できる

仕様変更が増える程、単体
  テスト工数は増大




                  6
コードの保守・再利用性が向上する
• 変更に伴うデグレを瞬時に検知できる
 – リファクタリングや保守が容易
 – 単体テストコードの動作検証がいつでも可能


• 外部仕様が容易に理解できる
 – メソッドの外部仕様がテストコードに記載
 – ドキュメント・コードの二重化を防止



                          7
コードが綺麗になる
• ソースコードのテスタビリティが向上する
 – 単体テストの自動化を意識したインターフェースの定
   義を強制
 – テストコードをマニュアルとして利用可能
 – コーディング力が向上


• 若手、新人の教育向けに適用できる



                              8
アジェンダ
 何故 単体テスト自動化 が必要?

  単体テスト自動化 のコツ

  単体テストを効率化するツール群

  まとめ

 参考
単体テストの対象を明確化する
• データの入出力ポイントに対して単
  体テストを実施する   モデルのテスト

HTML/   Java       画面      コント    モデル
 CSS    Script     モデル     ローラ




JavaScript で記    JavaScript から
                                 コントローラの
述したロジック          C# へのマッピ
                                 テスト
のテスト             ング                     JavaScript
                                        C#
                                                     10
単体テスト自動化が容易なインター
   フェースを定義する 1/3
• 従来の ASP.NET Web Forms では、単体テ
  ストの自動化がきわめて困難
  メインコード




  テストコード
単体テスト自動化が容易なインター
  フェースを定義する 2/3
• ASP.NET MVC で単体テストの自動化が容易に
   メインコード




   テストコード
単体テスト自動化が容易なインター
   フェースを定義する 3/3
• Testing Framework や NUnit 等で自動テ
  スト可能な外部インターフェース設計とする
             ViewReult   コント
             • ViewBag   ローラ
             • Model

             Web API の
               応答


            XXXXResult
             (その他の応答)
                                    13
変数名の命名規則に留意する 1/2

• テストメソッド名、変数名からチェック対象を理解
  できるように命名する

良い例
 [TestMethod]
 public void Indexがリストを返す()
 {
    List<string> expect = new List<string>(){ "a", "b", "c" };
    List<string> actual = null;
    HomeController controller = new HomeController();
    actual = (controller.Index() as ViewResult).Model;
    Assert.Equals( expect, actual );
 }
                                                                 14
変数名の命名規則に留意する 2/2

• 「悪い例」では、テストメソッド名、変数名から
  チェック対象が理解できない

悪い例
 [TestMethod]
 public void Index ()
 {
    HomeController controller = new HomeController();

     var actual = (controller.Index() as ViewResult).Model;

     Assert.Equals(new List<string>(){ "a", "b", "c" }, actual );
 }
                                                                    15
1メソッド・1アサートを心がける 1/2
• テスト対象を明確化するため、1メソッド・1アサートを
  心がける
• if 文, for 文, while 文に Assert はダメ、絶対
良い例
 string expect = XXXXXX;
 string actual = null;

 (中間ロジック)

 Assert.Eqauls( expect, actual );



                                        16
1メソッド・1アサートを心がける 2/2
• 「悪い例」では、チェックする場所が散って何をチェックして
  いるか分からない
悪い例
 string expect = XXXXXX;
 string actual = null;

 (中間ロジック)

 if(flag == true) {
   Assert.Eqauls( expect, actual );
 }else{
     Assert.Fail(“ここは通らないはず”);
 }
                                      17
モックを効率的に作成する 1/2
• Moq.dll 等を利用して HttpContextBase,
  IPrincipal, IIdentity 等のモック作成が難しい
  クラスを作成する
 [TestMethod()]
 public void IndexTest01()
 {
                                                                                            • Moq.dll を利用してもス
   string expect = typeof(RedirectToRouteResult).FullName;
   string actual;
   BuyHistoryController target = new BuyHistoryController(new TestOrderRepository());
                                                                                              テップ数が多い
     //モックの作成
     var mockHttpContextBase = new Mock<HttpContextBase>();
                                                                                            • Moq.dll を利用しないと
     var mockIdentity = new Mock<IIdentity>();
     var mockPrincipal = new Mock<IPrincipal>();                                              数倍のコード行数になる
     //ユーザ情報の設定&httpContextオブジェクトの作成
     mockIdentity.Setup(identity => identity.IsAuthenticated).Returns(true);
     mockIdentity.Setup(identity => identity.Name).Returns("someUser");
     mockPrincipal.Setup(principal => principal.Identity).Returns(mockIdentity.Object);
     mockHttpContextBase.Setup(httpContextBase => httpContextBase.User)
        .Returns(mockPrincipal.Object);

     ControllerContext context = new ControllerContext(mockHttpContextBase.Object, new RouteData(), target);
     target.ControllerContext = context;
     actual = target.Index().GetType().FullName;
     Assert.AreEqual(expect, actual);
 }




                                                                                                                18
モックを効率的に作成する 2/2
• モック作成は行数が伸びるので共通化する
[TestMethod()]
public void IndexTest01(){
   string expected= typeof(RedirectToRouteResult).FullName;
   string actual;
   BuyHistoryController target =           モック作成を共通化
        new BuyHistoryController(new TestOrderRepository());
   ControllerContext context = new ControllerContext(
      Utils.CreateControllerContext(true, "someuser")
      , new RouteData(), target);
   target.ControllerContext = context;
   actual = target.Index().GetType().FullName;
  Assert.AreEqual(expect, actual);
}

                                                               19
名前空間、クラス名の命名規則に留意する

• テスト対象のプロジェクト、クラスが分かりやすいよう
  に命名規則を規定する
 – プロジェクト名:MyMVC → MyMVC.Test
 – クラス名: MyClass → MyClassTest
 – メソッド名: MyMethod → MyMethodTest


• 命名規約に従うことで、 TestDriven.NET を利
  用した、メインコード/テストコードの切り替えが可能
 – http://www.testdriven.net/quickstart.aspx

                                               20
アジェンダ
 何故 単体テスト自動化 が必要?

  単体テスト自動化 のコツ

  単体テストを効率化するツール群

  まとめ

 参考
ツールを利用したテスト効率化したい
• 紹介したツール・ライブラリを利用
  してテストを自動化する
HTML/   Java     画面    コント   モデル
 CSS    Script   モデル   ローラ




                                   JavaScript
                                   C#
                                                22
ツールを利用したテスト効率化(β)
• 紹介したツール・ライブラリを利用
  してテストを自動化する
HTML/    View          View    コント   モデル
 CSS     Model         Model   ローラ

                 knocko                Entity
    knock                  AutoM
                 ut.map                Frame
    out.js                 apper
                 ping.js                work



                                           JavaScript
                                           C#
                                                        23
ツールを利用したテスト効率化(β)
• 紹介したツール・ライブラリを利用
  してテストを自動化する
HTML/  View    View      コント モデル
 QUnit-tap
 CSS   Model   Model   Testing
                        ローラ
で単体テス knocko Framework Entity
 ト自動化 ut.map 単体テスト自動化
  knock          AutoM
                            Frame
  out.js         apper
node.exe ping.js MSTest.exe work

                                   JavaScript
                                   C#
                                                24
紹介するツール・ライブラリ群
• 今回は以下のライブラリ・ツールを紹介
 –   knockout.js
 –   knockout.mapping.js
 –   AutoMapper
 –   Qunit-tap
knockout.js
• DOM 要素と JSON オブジェクトのマッピング機能
 var viewModel = {
    left: ko.observable( 30 ),
    right: ko.observable( 40 )    onblur 等のイベントが発生した
 };                               タイミングで、ViewModel と
  viewModel.answer =              DOM要素で値を同期
     ko.dependentObservable(function () {
         return parseInt(this.left()) + parseInt(this.right());
     }, viewModel);
 ko.applyBindings(viewModel);

 <input type=“text” data-bind=“value: left” /> +
 <input type=“text” data-bind=“value: right” /> = <span data-
 bind="text: answer"></span>
                                                                26
Knockout.mapping.js 1/2
• C#/VB.NET の ViewModel と JSON オブジェクト
  をマッピング             { name: “若人”, age: 20}
                              等のJSONに置換される処理
    <script type="text/javascript">
      //JSONオブジェクトから、ViewModel を作成
      var initialData =
          @Html.Raw(Json.Encode(Model));
      var viewModel = ko.mapping.fromJS(initialData);

      //DOM要素を読み込み後、ViewModel を Binding
      $( function(){
           ko.applyBindings(viewModel);
       });
    </script>              DOM 要素 と viewModel イ
                            ンスタンスとを双方向バインド
                                                        27
Knockout.mapping.js 2/2
• C#/VB.NET の ViewModel と JSON オブジェクト
  をマッピング
   $.ajax({
     type:“POST”, dataType: "json",
     contentType: "application/json",
     data : ko.mapping.toJSON(viewModel),
     url: "@Url.Content("~/api/Values/")",
     success :
        function(res){ alert(JSON.stringify(res)); }
   });

  public class ValuesController : ApiController{
       public string Post(ViewModel viewModel){
             return "server recieved answer = " +
    viewModel.answer; }
                                                       28
AutoMapper
• Model – ViewModel といったモデル間のマッピ
  ングを実施する
• 複数モデルからの集約化等、細かな制御が可能

    Model                ViewModel




     項目1

     項目2
AutoMapper
• 「XXX.ID = YYY.ID」の羅列を防止できる
• マッピングが存在しない場合は一括でチェック可能
 Product product = ProductRepository.GetById(id);

 Mapping.AutoMapperBootstrapper.Configure();

 Mapper.CreateMap<Product, ProductViewModel>();
 Mapper.Map<Product, ProductViewModel>(product);

 var productViewModel = Mapper.Map<Product,
 ProductViewModel>(product);
QUnit-tap の利用
• node.exe から実行可能な QUnit
 – node.exe → Node.js の Windows 実装
 – QUnit → ブラウザ上で JavaScript を単体テスト
• knockout.js の ViewModel が対象?
  require('../test_helper.js');
  QUnit.test('my calc test', function() {
     var expect = 3;
     var actual = calc( 1, 2 );
     assert.equal(expect, actual);
  });
  QUnit.start();
アジェンダ
 何故 単体テスト自動化 が必要?

  単体テスト自動化 のコツ

  単体テストを効率化するツール群

  まとめ

 参考
まとめ
• ASP.NET MVC は単体テストの自動化に向
  いている

• 単体テストの自動化を実施するためにはコツ
  がある

• 単体テストの自動化を支援するツールは多々
  存在する
View と コントローラの構成 (β)
HTML/CSS                        ViewM
                View knockout.map       Contr   Model
    knockout.js Model   ping.js  odel   oller        Entity
                                                  Framework
HTML/CSS                       ViewM
                View knockout.map
    knockout.js
                Model ping.js odel              Model
HTML/CSS        View           ViewM                 Entity
                     knockout.map
    knockout.js
                Model ping.js odel                Framework

                                   1対N      N対M
           1対1 対応
                                   対応       対応

                                                対応関係
                                                C#
                                                JavaScript
アジェンダ
 何故 単体テスト自動化 が必要?

  単体テスト自動化 のコツ

  単体テストを効率化するツール群

  まとめ

 参考
参考 1/2
• InfoQ – ASP.NET MVC のテスト方法
   – http://www.infoq.com/jp/news/2012/03/aspnet-
     unit-test
• MSDN Library – ASP.NET MVC アプリケーションの単体テスト
   – http://msdn.microsoft.com/ja-
     jp/library/ff936235.aspx
• ASP.NET MVC3 における単体テストの基礎
   – http://codezine.jp/article/detail/6493
• wa りと na はてな日記 - Moq.dll on ASP.NET MVC その2
   – http://d.hatena.ne.jp/waritohutsu/20090909/
参考 2/2
• knockout.js Documentation > mapping
   – http://knockoutjs.com/documentation/plugins-
     mapping.html
• knockout.js Documentation > The “template”
  binding
   – http://knockoutjs.com/documentation/template-
     binding.html
• knockout.js の注意すべき点
   – http://d.hatena.ne.jp/shiba-yan/20120130/
• miso_soup3 - AutoMapper+ViewModel In MVC その2
   – http://d.hatena.ne.jp/miso_soup3/20120408/
余談!
というか



続編!
クラウド上で単体テスト自動化
• Trac Lightning on Windows Azure
  – https://github.com/normalian/WATracLightning
テスト自動化もクラウドへ…
単体テスト自動化

(手動キック)

 単体テストの自動化

 (自動キック)


   全てクラウドへ・・・
自はこ
    動ての
    テし
    スな
    トく
    坂遠
    をい
    よ
    ・
    ・
    ・




未
          ばのよオ
          かぼうレ
          りりやは
          だはく
          かじ




完
          らめ
          なた

Contenu connexe

Tendances

ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウShinsuke Sugaya
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)Masaya Tahara
 
Firefoxの倒し方 by 西村 宗晃 (にしむねあ)
Firefoxの倒し方 by 西村 宗晃 (にしむねあ)Firefoxの倒し方 by 西村 宗晃 (にしむねあ)
Firefoxの倒し方 by 西村 宗晃 (にしむねあ)CODE BLUE
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法yoku0825
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppTomomitsuKusaba
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考えるtomo_masakura
 
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かうMvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かうShun Hikita
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
 
データモデリング・テクニック
データモデリング・テクニックデータモデリング・テクニック
データモデリング・テクニックHidekatsu Izuno
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかShohei Okada
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
さくさく要件定義セミナー in 大阪
さくさく要件定義セミナー in 大阪さくさく要件定義セミナー in 大阪
さくさく要件定義セミナー in 大阪Zenji Kanzaki
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる増田 亨
 

Tendances (20)

ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
 
Firefoxの倒し方 by 西村 宗晃 (にしむねあ)
Firefoxの倒し方 by 西村 宗晃 (にしむねあ)Firefoxの倒し方 by 西村 宗晃 (にしむねあ)
Firefoxの倒し方 by 西村 宗晃 (にしむねあ)
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考える
 
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かうMvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
データモデリング・テクニック
データモデリング・テクニックデータモデリング・テクニック
データモデリング・テクニック
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
さくさく要件定義セミナー in 大阪
さくさく要件定義セミナー in 大阪さくさく要件定義セミナー in 大阪
さくさく要件定義セミナー in 大阪
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 

En vedette

ユニットテストを意識して安心しよう
ユニットテストを意識して安心しようユニットテストを意識して安心しよう
ユニットテストを意識して安心しようYuta Matsumura
 
Sencha フレームワークの統合開発ツール Sencha Cmd
Sencha フレームワークの統合開発ツール Sencha CmdSencha フレームワークの統合開発ツール Sencha Cmd
Sencha フレームワークの統合開発ツール Sencha Cmd久司 中村
 
Windows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみたWindows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみた一希 大田
 
Henrik Kniberg - Scrum and XP beyond the trenches
Henrik Kniberg - Scrum and XP beyond the trenchesHenrik Kniberg - Scrum and XP beyond the trenches
Henrik Kniberg - Scrum and XP beyond the trenchesAgileSparks
 
cara instalasi sistem operasi jaringan
cara instalasi sistem operasi jaringancara instalasi sistem operasi jaringan
cara instalasi sistem operasi jaringanokayfirdaus
 
ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99Katsuya Shimizu
 
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙いKnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙いToshihiro Kawachi
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider貴志 上坂
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニックmiso- soup3
 
認定スクラムマスター研修に行ってきました
認定スクラムマスター研修に行ってきました認定スクラムマスター研修に行ってきました
認定スクラムマスター研修に行ってきましたHajime Yanagawa
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例masakazusegawa
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮するWataru Terada
 

En vedette (15)

ユニットテストを意識して安心しよう
ユニットテストを意識して安心しようユニットテストを意識して安心しよう
ユニットテストを意識して安心しよう
 
Sencha フレームワークの統合開発ツール Sencha Cmd
Sencha フレームワークの統合開発ツール Sencha CmdSencha フレームワークの統合開発ツール Sencha Cmd
Sencha フレームワークの統合開発ツール Sencha Cmd
 
Windows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみたWindows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみた
 
Henrik Kniberg - Scrum and XP beyond the trenches
Henrik Kniberg - Scrum and XP beyond the trenchesHenrik Kniberg - Scrum and XP beyond the trenches
Henrik Kniberg - Scrum and XP beyond the trenches
 
cara instalasi sistem operasi jaringan
cara instalasi sistem operasi jaringancara instalasi sistem operasi jaringan
cara instalasi sistem operasi jaringan
 
ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99
 
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙いKnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
 
認定スクラムマスター研修に行ってきました
認定スクラムマスター研修に行ってきました認定スクラムマスター研修に行ってきました
認定スクラムマスター研修に行ってきました
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮する
 
市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①
 

Similaire à 基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~

Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSAyumi Goto
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようずOda Shinsuke
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについてtako pons
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】Tomoharu ASAMI
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...Akira Inoue
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010stomita
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share久司 中村
 

Similaire à 基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~ (20)

Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
Ruby test double
Ruby test doubleRuby test double
Ruby test double
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 
ASP.NET MVC 1.0
ASP.NET MVC 1.0ASP.NET MVC 1.0
ASP.NET MVC 1.0
 
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
20090212
2009021220090212
20090212
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
 

Plus de normalian

エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~normalian
 
20140920 大分進化したメディアサービスで遊んでみた
20140920 大分進化したメディアサービスで遊んでみた20140920 大分進化したメディアサービスで遊んでみた
20140920 大分進化したメディアサービスで遊んでみたnormalian
 
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL DatabaseWindows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Databasenormalian
 
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発normalian
 
WebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かす
WebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かすWebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かす
WebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かすnormalian
 
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~normalian
 
Windows Azure Bootcamp メディアサービス編
Windows Azure Bootcamp メディアサービス編Windows Azure Bootcamp メディアサービス編
Windows Azure Bootcamp メディアサービス編normalian
 
Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトWindows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトnormalian
 
WebSphere V7を Windows Azure上で動かすまで
WebSphere V7を Windows Azure上で動かすまでWebSphere V7を Windows Azure上で動かすまで
WebSphere V7を Windows Azure上で動かすまでnormalian
 
デベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTデベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTnormalian
 
SL囲む会東京5 Nodejs×Silverlightではまったこと
SL囲む会東京5 Nodejs×SilverlightではまったことSL囲む会東京5 Nodejs×Silverlightではまったこと
SL囲む会東京5 Nodejs×Silverlightではまったことnormalian
 
JAZ一周年総会 Windows Azure 直近の更新
JAZ一周年総会 Windows Azure 直近の更新JAZ一周年総会 Windows Azure 直近の更新
JAZ一周年総会 Windows Azure 直近の更新normalian
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~normalian
 
2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~normalian
 
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~normalian
 
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門normalian
 
CLR/H勉強会44回目 Windows Azureストレージについて
CLR/H勉強会44回目 Windows AzureストレージについてCLR/H勉強会44回目 Windows Azureストレージについて
CLR/H勉強会44回目 Windows Azureストレージについてnormalian
 
わんくまっちゃ445同盟 SilverlightでTdd(仮)
わんくまっちゃ445同盟 SilverlightでTdd(仮)わんくまっちゃ445同盟 SilverlightでTdd(仮)
わんくまっちゃ445同盟 SilverlightでTdd(仮)normalian
 

Plus de normalian (19)

エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~
 
20140920 大分進化したメディアサービスで遊んでみた
20140920 大分進化したメディアサービスで遊んでみた20140920 大分進化したメディアサービスで遊んでみた
20140920 大分進化したメディアサービスで遊んでみた
 
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL DatabaseWindows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database
 
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
 
WebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かす
WebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かすWebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かす
WebLogic Server 12c を Windows Azure の Windows Server 2012 R2 で動かす
 
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~
 
Windows Azure Bootcamp メディアサービス編
Windows Azure Bootcamp メディアサービス編Windows Azure Bootcamp メディアサービス編
Windows Azure Bootcamp メディアサービス編
 
Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトWindows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイト
 
WebSphere V7を Windows Azure上で動かすまで
WebSphere V7を Windows Azure上で動かすまでWebSphere V7を Windows Azure上で動かすまで
WebSphere V7を Windows Azure上で動かすまで
 
デベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTデベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LT
 
SL囲む会東京5 Nodejs×Silverlightではまったこと
SL囲む会東京5 Nodejs×SilverlightではまったことSL囲む会東京5 Nodejs×Silverlightではまったこと
SL囲む会東京5 Nodejs×Silverlightではまったこと
 
JAZ一周年総会 Windows Azure 直近の更新
JAZ一周年総会 Windows Azure 直近の更新JAZ一周年総会 Windows Azure 直近の更新
JAZ一周年総会 Windows Azure 直近の更新
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
 
2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~
 
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
 
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
 
CLR/H勉強会44回目 Windows Azureストレージについて
CLR/H勉強会44回目 Windows AzureストレージについてCLR/H勉強会44回目 Windows Azureストレージについて
CLR/H勉強会44回目 Windows Azureストレージについて
 
わんくまっちゃ445同盟 SilverlightでTdd(仮)
わんくまっちゃ445同盟 SilverlightでTdd(仮)わんくまっちゃ445同盟 SilverlightでTdd(仮)
わんくまっちゃ445同盟 SilverlightでTdd(仮)
 

基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~