MbUnitでデータ ドリブン ユニット テスト

ちょっと前にNAgilerの日記 さん で、MSDNにデータ ドリブン ユニット テスト という言葉があることをを認識。 http://msdn2.microsoft.com/ja-JP/library/ms182519.aspx MSTestではDataSourceAttributeがあるということですが、S2Unit.NETでも使用しているMbUnit では、方法はちょっと違いますが、同様のことを指向しています。 http://www.mertner.com/confluence/display/MbUnit/Home こちらのサンプルが分かりやすいと思いますが、 http://www.mertner.com/confluence/display/MbUnit/DataFixture http://www.mertner.com/confluence/display/MbUnit/RowTestAttribute DataFixtureという形で、テスト用のデータを定義し、ForEachTestで繰り返し実行をするわけですね。あるいは、RowTestとして、アトリビュートしてRowを定義。 と、言いながらまだやっていはいませんm(_ _)m実践でやったら改めてご報告ということで。 NUnit用に書いたテストも基本的にはそのまま実行できるのがよいのですが、一点違いとして認識しているのは、Assert.Ignoreを例外として赤くしてしまうというところ。Ignoreアトリビュートは黄色くしてくれますけどね。 (2006/04/26追記) using NUnit.Framework; のままだとそうなのですが using MbUnit.Framework; にしてあげれば、黄色くなります。 で、昔自分もこんなことを考えたなと思って見直してみると、意外と面白い(笑)。 http://homepage2.nifty.com/konnokiyotaka/testing/index.html でもJXUnitって、使われているのかな?? コードを触りたくない人にテストを書いてもらうためには、そのとき考えたように、メッセージもデータに持ったたほうがよいのではないかな? また、実際今は自分でもやっていないのは、XMLって結構と面倒だから。やはりExcel読み込みかな。 分離するとメンテナンスが別個になってしまい置き去りにされやすいという問題はあるな。 などなど、またやりたいことが色々出てきてしまいました・・・。

Atlas実践

で、やってみました。マジすごい。 何がすごいって、既存の部分を何もいじらずにAjaxの動きにできてしまう。 例えば、あるボタンを押したら、検索条件にしたがってGridViewを書き換える、という動作があるとします。 これをAjaxにするには、 1.おまじないとして、 <atlas:ScriptManager ID=”s1″ EnablePartialRendering=”true” runat=”server” /> を記述。 2.<atlas:UpdatePanel ID=”p1″ runat=”server”>の領域を作る。 3.その中に、との領域を作る。 4.既存のGridViewをの中に移す。 5.の中に、イベントを設定する。 例えば、こんな感じ。 <atlas:ControlEventTrigger ControlID=”btnSelect” EventName=”Click” /> タグ記述は補完もされるので、簡単に記述できます。強いて言えば、ControlID・EventNameを文字列として書かなければいけないという点だけ改善の余地ありでしょうか。 まあ、ムービーでも紹介されているような典型的な処理なのでこんなに簡単なのかもしれませんが、かなり期待できると思います。今まで作ってきたアプリを片っ端から変えていきたいくらいです。 是非体験すべし!!

Atlas March 2006 CTP

エバンジェリストグループ Blogにて、最新CTP や、それにまつわる情報がアナウンスされています。 http://www.exconn.net/Blogs/team03/archive/2006/03/21/8115.aspx その中で、コミュニティサイト http://atlas.asp.net/ が紹介されていますが、そのビデオを見るとまた驚いてしまいます(「Download this video」からどうぞ)。 イメージとしては、atlasタグで囲んであげればOK、みたいな感じ。 本当に?というわけで早速インストール。今回はC#だけでなくVBも提供されています。あえて、前バージョンをアンインストールせずやってみましたが、上書き確認が出ますので上書き。 合わせて、Sample Applicationもインストールします。 何はともあれ、サンプルを見てみようということで、ファイル > Webサイトを開く > C:\Program Files\Microsoft ASP.NET\Atlas Sample Applications\TaskList。 これでビルドすると失敗するので、Microsoft.Web.Atlas.dllへの参照を追加します。 さらに接続文字列も確認しておきます。ASPNETDB.MDFと書いてありますが、TaskListの中にはありませんので、Atlas Sample Applications\Contacts\App_Dataからコピーします(笑 いいのか??)。 で、ログインして操作してみたのがこんな感じです。 ただ、重大な問題が!全然Ajaxじゃない!!普通にポストバックしてるし! と思ったら、これじゃなくて、↓こいつらを動かしてあげないといけないんですね。 こいつらは、ちゃんとAtlasしてました。 ちょうど、趣味のアプリにToDoリストを付けたかったので、組み込んでみたいと思います。

ドキュメント2.0

何でも2.0にすればいいというものでもありませんが、ちょっと悪のり。 Wikiつながりで、以前ご紹介いただいた記事をこちらでも紹介。 http://techon.nikkeibp.co.jp/article/NEWS/20060130/112840/ (無料会員登録が必要です) 「Wikiに記述したテスト内容から,テスト・ケース(テスト用プログラム)を自動生成するツールを作成し、・・・」 ドキュメントが、ドキュメントしての役割以上の役割を果たす世界! ドキュメントがドキュメントとしての役割さえ果たさない場合もあるように思いますが(泣)

Atlas Wiki その2

今日はこれからスノボに行くので、あまり時間がありません~ ロールの設定は今日はあっさりできました。 しかし、ここからしかできないというのはよいのかな?? こんな感じで書き込みできます。 驚くのは、履歴参照とかその比較とか。すげー

Atlas Wiki いじり中

ASP.NET “Atlas” Wiki http://msdn.microsoft.com/asp.net/info/future/atlas_wiki/ vsiファイルからのインストールはウィザードに従うのみ。 インストール後に、VS2005でファイル > 新しいWebサイト をやると、下のように、テンプレートが追加されていることが分かります。 これで自動的にサイトを作ってくれます。そしておもむろに実行すると、データベースに接続できませんエラー。 ここはちょっとはまりました。 SQL Server 2005 Expressの人は、もしかしたらそのままいけるかもしれません。 そうでない人は、Web.configの接続文字列を変更します。この時に、自動で立ち上がる開発サーバーポートはいったん終了する必要があるようです。接続文字列の変更が反映していないだけなのに色々いじっても状況が変わらず、悩みました。 最終的には、こんな感じ。※私は、SQL Server 2005用のインスタンスを「SQL2005」にしています。 <add name=”defaultSqlServer” connectionString=”Data Source=(local)\SQL2005;Integrated Security=True;AttachDBFilename=|DataDirectory|AtlasWiki.mdf” /> そうすると、下のようなページが出てきます。おしゃれ~ ログイン 検索機能を有効にするには、DBの設定が必要です。SQL Server 2005 Expressではダメみたい。 さて、これでページにコメントを付けようとしたりすると、権限がないと言われます。 ユーザの登録は「Register」からできるのですが、権限なんてありませんでした。 で、権限はどこで管理するかというと、VSに戻って、Webサイト > ASP.NET構成 から。 で、これまたエラーになったので、続きは明日!

「ザ・ファシリテーター」

最近会社で盛り上がっていることもあり、上司が貸してくれました。 ザ・ファシリテーター 森 時彦 おすすめ平均 チームリーダーとして悩みが解消!! 具体例からファシリテーションを見る 不毛な会議を終わらせて、生産的な会議をしたい人必読 人と組織を活かす手法とは ファシリテーションを身につけてみようかなという方に Amazonで詳しく見るby G-Tools <p> いきなりホワイトカラーの生産性が低いという記述から始まってびっくりしました。<br /> なぜなら「小倉昌男 経営学」の最後にもそのような記述があったからです。<br /> SEはホワイトカラー?よく分かりませんし、無理に分ける必要もないと思いますが、コミュニケーションが生産性に影響する職業だとは思います。これまたちょっと前の「プロジェクト・ブック」にあった言葉ですが、私たちは「この期に及んで」コミュニケーションの向上を求められているわけです。とりわけ自分で認識しているならば「オーバーコミュニケーション」を意識したほうがよいだろう、というのは本書の中の記述です。<br /> 話は飛びますが、赤字製品にも顧客がいて、彼らは往々にして高収益製品も買っている重要顧客である、ここに顧客との長期的関係を重視する日本企業が苦手とするプロダクトマネジメント問題がある、という記述は印象に残りました。自分でかけた罠みたいなものですよね。でもはまりますよね。常に打開し続ける努力をしないと、抜けられませんよね。<br /> 本書の中でも紹介されている、下記のアイスブレーク集は役に立つかも。<br /> <a href="http://www.faj.or.jp/facilitation/tools/index.html">http://www.faj.or.jp/facilitation/tools/index.html</a> </p>

「小倉昌男 経営学」

以前から読みたいと思っていました。 小倉昌男 経営学 小倉 昌男 おすすめ平均 経営の真実と戦略の本質を学べる一冊 わかりやすくてよい。 ミスター ロジカル 勉強になる 「ダントツ」サービスの秘密がここに Amazonで詳しく見るby G-Tools <p> 「サービスというものは目に見えにくい。ゆえに、本当に差別化できているかどうか常にチェックする必要がある。」ということで、翌日配達サービスの達成度合いを調査し、留守宅が多いという問題を発見し、さらなる在宅時配達サービスへとつなげていったということです。<br /> 例えばお客様の業務効率向上ということをうたったサービスを提供したりするときに、本当に効率が向上しているかを調査するということはなかなかできないと思います。しかし、それを認識することで本当のサービス向上ができるのだろうと思います。<br /> また、サービス向上が「全員経営」の名の下、社員からの働きかけで実現していくということも、すばらしいと思います。年中無休を打ち出したのは労働組合であった、なぜなら現場のセールスドライバがお客様の声に応えたいと思ったから、というのはすごい話だと思います。<br /> 先日、経営者のお話を聞いたときも、経営者は従業員にそういうことを期待するのだなと感じました。物を売るのでもサービスを提供するのでも、準備をしたら後はいかにモノなり人なりを評価してもらうか、ということですから、全員が経営の視点を持っていれば会社の評価を下げるような言動はありえない、そういうことでした。<br /> いろいろと心していかないといけないですね。 </p>

ふりかえり、最初の一歩

いざ始めようと思っても、どのメンバーでやったらよいのかすっきりせず、みんな乗ってくれるかも自信なく、悩みだしてしまいましたが、結局班のメンバーで夕方やることにしました。 ・・・いや、盛り上がりました! みんなでワークショップを受講したのは、大正解でした。紙に線を引き出すと「KPTですね」と言われるのは当たり前、その前に壁に真っ白なA3の紙を貼ったとたんに「そこにKPTですか?」と言われたときは、ちょっとゾクッときました(笑)。 ・班じゃなくてもよいかも。課全員だと多すぎるので、シャッフルしてもよいか・・・ ・日中作業しながら、KPTを整理しておくこと。夕会は短めにキビキビと ・毎日KPTが出てこなくても、情報共有できればOK こんな感じで続けてみたいと思います。