« 2010年03月02日 | メイン | 2010年03月05日 »

2010年03月03日

NUnit 2.5で追加されたAssert.Throwsでの注意点

NUnit 2.5からAssert.Throwsというメソッドが追加されていて、インラインでエクセプションのテストができるように拡張されています。

こんな感じですね。

   1:  private void ExceptionDashimakuri(string a) {
   2:      if (a == null) {
   3:          throw new ArgumentException("a is Null !!");
   4:      }
   5:  }
   6:   
   7:  [Test]
   8:  public void TestExceptionDashimakuri() {
   9:      string a = null;
  10:      var ex = Assert.Throws<ArgumentException>(
  11:              () => ExceptionDashimakuri(a)
  12:          );
  13:      Assert.That(ex.Message == "a is Null !!");
  14:  }

インラインで想定されているExceptionが飛んできているか、その後Assert.That等によってメッセージ内容が適切か、Exceptionのソースが適切か等も確認することができます。

Assert.Throwsすばらしいですね。見事ですねという感じなのですが、テスト実行の時に一つだけ注意点があります。Visual Studio上でテスト実行する場合には「必ずDebug無しで実行する」事です。Debug実行してしまうとVisual Studioに例外がハンドルされていないって冷たく言われます。。。(常識ですよねそうですよね。。。30分ぐらい悩んじゃった。)

しかし、日本語の情報無いなー。

Tech Fest 2010

Tech FestはMicrosoft Research(MSR)の一般への研究発表の場でいわば学園祭です。

Get Microsoft Silverlight

上は責任者であるリチャード・ラシッドによるイントロデュースです。

また、これ以外にもTech Festに発表された研究がCh9で公開されています。

http://channel9.msdn.com/tags/TechFest/

Natural User Interfaces with Physiological Sensing | TechFest 2010 | Channel 9

Mobile Surface | TechFest 2010 | Channel 9

Project Gustav: Immersive Digital Painting | TechFest 2010 | Channel 9

TechFest 2010: Project Gustav | Laura Foy | Channel 9

あわせて読みたい
クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.