2009年9月27日日曜日

地図みたいな検索 Blogopolis

■『Blogopolis』
http://blogopolis.jp/

地図みたいな形の検索サイトです。
サイトについているランクによってビルが大きくなるみたい。

ここで僕のサイトが小さいながら存在しているのが嬉しかったですね。
ビルの屋上に画像を貼り付けれるということで早速貼り付けてみました!

先日自分で書いた絵なんですけどね。
愛嬌がありますよ。

http://blogopolis.jp/view/http://mzs184.blogspot.com/

.

2009年9月26日土曜日

GoogleChromeのテーマ変更ができる

いつの間にって感じです。
新しいタブに表示されている、よくアクセスするページに見知らぬサイトが。。。
何だろうと確かめてみたら。

なんとChromeのテーマ変更のページじゃないですか。
とにかく色々試してみて、黄色が好きな私は『Vertical Stripe』にしてみました。

お気に入りのテーマが見つかるとよいですね。
以下のサイトからテーマを変更できます。
https://tools.google.com/chrome/intl/en/themes/index.html

.

2009年9月25日金曜日

NUnit で TestSuite の作成と実行

VS2008で、プロジェクト(DLL)毎に記述したテストクラスを
一度にまとめて実行したい!と思ったのが発端。

NUnitのドキュメントを見る限り、どうやらSuite属性を使えば出来る模様。
http://www.nunit.org/index.php?p=suite&r=2.5.2

で作成してみたサンプル
SmapleTest.DLL
------
namespace SmapleTest
{
[TestFixture]
public class SampleTest
{
[Test]
public void TestCase1
{
Assert.Fail("失敗するテストケース");
}
}
}
------

TestSuite.DLL
------
namespace TestSuite
{
public class AllTest
{
[Suite]
public static IEnumerable Suite
{
get
{
ArrayList suite = new ArrayList();
suite.Add(new SampleTest());
return suite;
}
}
}
}
------

これをNUnit.exeに読み込ませてみる。
これで完成!



と思いきや。


NUnitに表示されたのは一行のみ
『C:\TestSuiteSample\TestSuiteSample\bin\Release\TestSuite.DLL』
DLLの絶対パスやん。

おもむろにRUNボタンを押してみるが、動作しません。


再度NUnitのドキュメントを読み直しました今度はちゃんと。

NUnitの起動時に/fixtureのコマンドラインオプションをつけてねと書いてありました。

コマンドプロンプトで以下を実行(全て一行で書いてます。)
-----
C:\Program Files\NUnit 2.5.1\bin\net-2.0\nunit.exe /fixture:TestSuite.AllTest C:\TestSuiteSample\TestSuiteSample\bin\Release\TestSuite.DLL
-----

fixtureオプションでSuite属性のプロパティを持っているクラスの絶対パス(名前空間を含めたフルパス)を指定します。

これで立ち上がったNUnitにちゃんとSampleTestのテストケースが表示され、
実行することが出来ました!


英語を読むのに苦労しましたが、何とかテストスイートの作成に成功!
これで少しテストコードの作成が面白くなってきました♪

.

2009年9月21日月曜日

単体テストについて

最近はテストコードを書く人になっていたので、
書いていて思った事をつらつらと。

・まず目的を設定する。
 何のためにテストコードを書いているのか?
 テストコードを書いて何を検査したいのか?

・テストケースの追加が容易になるようにテストコードを書く
 追加コストが高いと必要なテストケースを後で追加しなくなるため。
 入力と結果の2つを引数にもつ関数を実装していれば問題無いと思う。

・テストコードを書いたらカバレッジも一緒に計測すること
 これが無いとテスト出来ているのかが分からない。
 目で結果が見れるものであれば達成感も味わえる。

・テスト対象のコードとテストコードは同時にビルドすること
 同時にビルドしていないとテストコードのメンテナンスをしなくなり、
 折角書いたテストコードを腐らせていく原因になります。
 
・テストコードを実行させるのは容易か?
 実行コストが高いとテストを実行させない。
 テスト自動化(回帰テスト)の意味が無い。

.

2009年9月12日土曜日

NUnitメモ

NUnit を使い始めたのでメモ書き。

・クラスと Test 属性をつけた関数は public にする必要がある。
・NUnitに読み込ませるのは DLL、EXE どちらの形式にしても OK 。


以下のような形でクラスを作成します。

----
[TestFixture]
public class TestSample
{
[SetUpFixture]
public void SetUpFixture()
{
// [TestFixture]の最初に一度だけ呼び出される関数。
}

[TestFixtureTearDown]
public void TestFixtureTearDown()
{
// [TestFixture]の最後に一度だけ呼び出される関数。
}

[SetUp]
public void SetUp()
{
// [Test]メソッドを呼び出す前に実行される。
//([Test]が複数あれば複数回呼び出される)
// 必要なインスタンスの生成などを行う。
}

[TearDown]
public void TearDown()
{
// [Test]メソッドを呼び出した後に実行される
//([Test]が複数あれば複数回呼び出される)
// リソースの解放処理などを行う。
}

[Test]
public void Test()
{
// ここにテストコードを記述

// 期待値とテスト結果の比較には以下のメソッドを使用する。
Assert.AreEqual("a", "a"); //OK
Assert.AreEqual("a", "b"); //NG
}

[Test]
[ExpectedException(typeof(ArgumentException))] // この場合はArgumentExceptionが発生しなければテスト失敗となる。
public void TestCatchException()
{
// ここにテストコードを記述
}
}
----
NUnitではAssertで失敗すると例外が発生してそこでテストが止まります。

私はテストする関数毎にテストクラスを用意して、
テストケース毎にテスト関数([Test]属性が付いた関数)を作成するようにしています。


.

ラベル