TDD

忘れてた

C#と諸々 パブリックプロパティ (もしくはパブリックフィールド) の善悪GUI 周りと DB 周りの他に、ユニットテストにも関わってくるね。 ユニットテストでも恩恵を得られるけれど、たまに一工夫必要になる。 こんなクラスと public sealed class Hoge { publ…

例外がスローされることを期待するユニットテスト

こう書くと Assert.Fail が実行されなくてカバレッジが低下する。 Hoge hoge = new Hoge(); try { hoge.Fuga(); Assert.Fail(); } catch (InvalidOperationException) { } そこでこう書く bool wasThrown = false; Hoge hoge = new Hoge(); try { hoge.Fuga(…

ユニットテストが

TDD

全体的にモックを使ったテストばっかになってしまった。 Assert は数えるほど。 まぁ、スキャナでスキャンした画像を転送するだけのアプリなので当然っちゃ当然か。

現在の日時を使用するような処理のテスト

こんなインターフェイスを経由して取得するようにして、テスト時はフェイクを注入して制御するようにしてるけど、みんなそんな感じだよね? interface IClock { DateTime GetNow(); } class ClockFake : IClock { public DateTime Now { get; set; } public …

今日買った本

テスト駆動開発入門作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート出版社/メーカー: ピアソンエデュケーション発売日: 2003/09メディア: 単行本購入: 45人 クリック: 1,058回この商品を含むブログ (162件) を見る本屋で物色してる時に、そうい…

NUnit.Mocks.Mock を継承してモックを自作

こんなインターフェイスがあって public interface IHoge { bool Piyo(); } こんなクラスで使用するとする。 public class Fuga { private IHoge _hoge; public Fuga(IHoge hoge) { this._hoge = hoge; } public bool HogePiyo() { return this._hoge.Piyo()…

フェイクにモックを加えるクラス

これを毎回実装する手間を省くために、RealProxy 使って WrappingMock なんてクラスを作ってみた。 using System; using System.Reflection; using System.Runtime.Remoting.Messaging; using System.Runtime.Remoting.Proxies; using NUnit.Mocks; public s…

NMock いいねー

こりゃ便利だ 最初、使い方よくわからなくて適当に書いて実行したら VS 落ちたけどwwww 一つメモ。 毎回、Mockery.VerifyAllExpectationsHaveBeenMet メソッド呼び出す代わりに TearDown で Mockery.Dispose メソッド呼び出すと楽。

MVC ビューを単体テスト

ちょっと勘違いしてたかも。とりあえず全部削除。 今回もフレームワークじゃなくて、パターンの方の話。 # フレームワークなら、ビューも簡単に単体テストできるのかな?例えばこの記事に掲載した後者のコードに含まれる Lend というページクラス。ILendView…

IList.Count

IList<Hoge> hoges = GetHoges(); Assert.That(hoges, Has.Count(5), "hoges の要素数が 5 であるか"); これ、GetHoges が List 等のコレクションではなく配列を返してくると、アサートをパスしない。 配列の場合は、要素数の取得に Count プロパティではなく Leng</hoge>…