オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Mark Levison , 翻訳者 徳武 聡 投稿日 2009年12月1日
日付に対する単体テストはよく議論の対象になる。つまり、テストケースの中の固定の日付に依存するようなテストではテストにならないという点がしばしば話題にのぼる。特定の日付に依存するテストがパスしても、結局それはその特定の日付でだけパスするということでしかない。この問題に対する標準的なアドバイスとして、依存性注入を使う方法がある(BigVisible社のAdam Sroka氏)。
いくつかの日付をテストする必要がある場合、それらの日付を計算メソッドにわたしてやります。このメソッドは日付に対して計算処理をしますが、メソッドの内部から、計算対象の日付を取得しないようにします。日付型から現在時を取得するのも、データベースから日付を取得するのもユーザの入力から取得するのもだめです。高いレベルで日付を取得し、計算メソッドに渡してやります。
この方法が単体テストでどのように動作するのか、確認するのは簡単だ。しかし、まだ問題は残る。すなわち、受け入れ/システムテストではどうするか? Andreas Ebbert-Karroum氏は、まさにこの問題に直面し、次の3つの選択肢を思いついた。
xUnit Test Patternsの著者であるGerard Meszaros氏は、#2として知られているバーチャルクロックパターンを使っている。
私たちの場合は、現実の時間を取得できるサービス(システムの時間APIの呼び出しのインターフェイス)の上に抽象レイヤをかぶせています。そして、テストの時にはテスト用のスクリプトを使って抽象レイヤの実装を変更可能な時間取得サービスに置き換えます。既定では、抽象レイヤには、実際に利用する実装がセットされています。We use an abstraction layer over top of the real time service (read: hide the calls to the system time API behind an interface) and then replace the implementation when testing with one controllable by the test scripts. By default, the real implementation is plugged in.
良い点: すべてのテスト条件が確実にテストできます。時間の競合状態のテストもできます。
ソフトウエア開発のコーチであるGeorge Dinwiddie氏は、単一の時間リソースを使えば、複数のマシンの複数の時間リソースを参照しているシステムで起こりうる厄介な問題を回避できる、と述べている。複数の時間リソースを参照しているシステムというのは、例えば、あるマシンではそのマシンの時間リソースを使い、他のマシンではデータベースの時間を使っているというようなシステムだ。
Ward Cunnigham氏 (wikipedia)は別の方法を採用している。“"swim"というフレームワークを使って、ここ最近までテストをしていました。このときは、$nowというグローバル置換文字列が入ったSQL文を作成し、テストのときに式でその文字列を置換するようにしていました。その式は、時間の経過を、時、日、週で表します。こうすることでトレースしたSQLがとても見やすくなるという利点が得られました。”
Mike Stockdale氏はFitSharpの開発者だ。氏が言うには、FitSharpは相対日付変換をサポートしている。例えばtoday+2というような値だ。FitLibraryの開発者であるRick Mugridge氏が書いているのは、FitLibraryには、“一般的に使える日付生成"DSL"があり、これを使えば異なったタイムゾーンの中から任意の相対日付を選択できますし、また様々な書式が使えます。例えば、月の最終日とか、月曜日などという指定の仕方で日付を選択できます。この機能は、未来の日付の選択する機能がとても重要な役割を果たし、テストする時にはテスト用のデータ(とテスト用の日付)を使わなければならないような予約システムで広範囲に使われてきました。”一方、テスト自動化アーキテクトのMartin Gijsen氏はこの問題を解決するためにANTLRを使っている。
Andreas氏が挙げた選択肢のうちの1番目と2番目の方法が広く使われているようだが、あなたはどうだろうか。これらの方法にはどんな利点と欠点があるだろう。
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信