2008年10月03日

リファクタリング?

   このエントリーをはてなブックマークに追加 Clip to Evernote
システムが大きくなると、単体テストの環境を整えるのが面倒になるときがありますよね。
あるクラスXが Sampleクラスを利用していた場合に、このSampleクラスがテストに邪魔になるときがあります。
そんなときに、

class Sample : ISample { .. }
class NullSample : ISample { .. }

という構造にし、一時的にNullSampleというスタブをつかうことで、クラスXそのものの動作を確認できるようにすることがあります。

でも、システムが安定してくると、ISampleや NullSampleは不要になります。
そうなると、複雑さを軽減したくなってきます。
こんなときは、ISample, NullSampleは、そのまま残しておくべきなのでしょうか。それともこれもリファクタリングと考えて、ISample, NullSampleは消してしまったほうがよいのでしょうか。
結構悩みます。
  

Posted by gushwell at 21:32Comments(4)TrackBack(0)

2008年08月16日

Visual Studio 2008の単体テスト

   このエントリーをはてなブックマークに追加 Clip to Evernote
Visual Studio 2008の単体テスト機能を使っていると、時々、単体テストが起動できなくなる場合がある。
また、単体テストが起動できても、コードカバレッジの結果が表示できない症状になることもある。

こんな時には、Visual Studio 2008を再起動しただけでは現象が回避できず、PCを再起動しないとダメみたい。

ただ、経験上、VsPerfMon.exeというプロセスをタスクマネージャから終了させると、
うまく、単体テストが起動できるようになる(と思う)...。

  
Posted by gushwell at 16:58Comments(0)TrackBack(0)

2007年03月20日

Visual Studio Team Syste の単体テストで例外発生をテストする方法

   このエントリーをはてなブックマークに追加 Clip to Evernote
備忘:Visual Studio Team Syste の単体テストの例外発生をテストする方法

ExpectedExceptionAttribute をメソッドに付加することで、予測される例外がスローされるかどうかをテストできます。

わざわざ、例外をキャッチするコードを書く必要はありません。

 // InvalidOperationExceptionが発生すればテストOK
[TestMethod()]
[ExpectedException(typeof(InvalidOperationException))]
public void TestMethod() {
// この中で、InvalidOperationException 例外が発生することを確認
}


  
Posted by gushwell at 23:26Comments(0)TrackBack(0)

2006年05月16日

Visual Studio Team Edition の UnitTest

   このエントリーをはてなブックマークに追加 Clip to Evernote
今日、初めて Visual Studio Team Edition の Unit Testを使ってみたのですが、間違って Assert.Equals メソッドを使ってしまいました。
しばらく間違いに気がつきませんでした。危ない危ない...

正しくは、

Assert.AreEqual(e,a);

ね。

ウィザードがついているので、作成済みクラスのテスト単体テストがとても楽チンですね。
それに、IDEが自動作成する Accessor クラスを通して、private メンバーにもアクセスできるのもとても便利。(これは、賛否両論だろうけど)
ただ、ジェネリッククラスでは、この機能は使えないみたいです。  
Posted by gushwell at 21:25Comments(0)TrackBack(0)