2011-01-17 1 views
5

単体テストを書くときは、通常、端のケースをテストすることをお勧めします。単体テストを使用する際には、これらの点を考慮する必要がありますか?

しかし、これは正しい種類ですか?常に> 1行を有していなければならない表は、フィールドが必要とされるよう

  • アサートしないこと

    • テストDBへの接続が開いていない(例外がスローされたアサート)
    • アサート、は!= nullです。
    • 正しい形式でipが設定されていることをアサートします(文字列をIPに解析できます)。

    おかげ

  • 答えて

    5

    は、あなたのテストがOKに見えるが、句「エッジケース」は、通常、あなたが入力の制限を回避するために行う必要があるテストとチェックを指します。

    データベースに50文字を受け入れることができる列があるとします。あなたのエッジケースのテストは、次のとおりです。

    • 保存49文字の文字列 - 成功
    • 保存50文字の文字列 - (あなたの言語に応じているため、ヌル終了文字のか、おそらく失敗、)成功
    • 51文字の文字列を保存する - 失敗

    エラーが発生する可能性が最も高いアプリケーションの周りとそのエッジでテストしていることがわかります。この場合、データベースに書き込むアプリケーションにエラーを引き起こす可能性のある使用可能な文字の数が混乱する可能性があります。

    他のテストでは、20文字の文字列を保存し、100文字の文字列を保存するテストを行う必要がありますが、これらはより安定しています。

    +1

    このように、基本的にパラメータをテストします。だから私のdbクエリがパラメータを取った場合、それをテストします(間違ったフォーマットのGUIDなど)。しかし、私が上に書いたテストはまだ良いと思う。 – dotnetdev

    +1

    @dotnetdev - それはアイディアです。あなたが持っているテストはまだ良いです。 – ChrisF

    関連する問題