2010-12-29 14 views
2

HI、 私は市場で入手可能なツールを使用して単体テストを調べるタスクを割り当てられました。私の質問は、単体テストケースの作成に役立つAPIをどうやって書くのかです。 例私は、ファイルが指定された場所に存在するかどうかを確認するために、このようなものを書くためにnunitを使うことができます。ユニットテストAPIを開発する

<Test()> _ 
    Public Sub CheckOutputFileInfo() 
    ReportPath = "D:temp\test.txt" 
    Dim result As Boolean 
    result = File.Exists(ReportPath) 
    Assert.IsTrue(result) 
End Sub 

私はこれを理解は最良の例はありませんが、私の質問はどのように私はNUnitのを組み込み、他の開発者/テスターはNUnitのを学ぶことを約悩まずにテストケースを書くことができるようにAPIを開発するんです。 FYI私はAPIを書いたことが一度もありません。これは私の最初のショットです。 どこから始めるべきかについての推奨事項はありますか? ありがとう

答えて

3

あなたの例は厳密には単体テストではなく、ファイルシステムにヒットします。それはそれはそれは実行できませんファイルシステム

  • に触れる
  • ネットワークを介して通信を行うデータベース
  • に話し

    1. :場合

      テストでは、ユニットテストではありません

    2. あなたの環境(設定ファイルの編集など)を実行するために特別な作業を行う必要があります。

    ユニットテストのベストプラクティスとパターンを学習してから、開発者にユニットテストを開始させることをお勧めします。経験から、誰かがユニットテストを完全に把握してチャンピオンにする必要があります。長期的には頭痛の種になるでしょう。

    ここであなたが始めるために優れた本は次のとおりです。

    http://artofunittesting.com/

  • 7

    あなたは開発者にnUnitを使用させる方が良いと思います。すでにうまく設計され、柔軟性があります。開発者にとってより使いやすくしたい場合は、さまざまなテストで必要な設定でテストオブジェクトを設定し、データをサンプリングするヘルパークラスを構築してみてください。たぶんCreation Method patternのようなものを試してみてください。これは、テストコードの書き込み、読み込み、および保守を容易にするためのさまざまな方法を説明している、xUnit Test Patternsという非常に良い本からのものです。本書のほとんどはオンラインで入手でき、Brief Tourは始めるのに適しています。

    +0

    は、私が最初にすることを提案していた...しかし、問題は二人の開発者がロジックの同じ種類の異なるテストを書くことができる方法です。したがって、更新/挿入が成功したかどうかを確認するデータベースの資格情報などのようなことをするラッパー関数を記述したい – jsp

    +3

    あなたが説明しているのは、統合テストであると聞こえますが、ユニットテストは2つの全く異なる獣です。最後の仕事で私たちのためにトリックを行った一連の統合テストがありました。セットアップとティアダウンの方法を使用して、ロールバックできるDBコードの周りにトランザクションをラップしました。 。 – Burt

    +0

    はい、これは私が使用しようとしていた属性の1つです。私はそれを使うことについてもっと学ぶことに興味があります。 – jsp

    1

    なぜそれをしたいですか? NUnitとほとんどの選択肢は、学習して使用するのが本当に簡単です。単体テストを書く上での課題は、APIをマスターするのではなく、良いテストとテスト可能なコードを書くことです。

    NUnitを効率的に使用するには、TestおよびTestFixtureおよびSetUp属性を知り、Assertクラスで使用可能なアサートを知る必要があります。それは本当に簡単です!

    私は、良いテストを書く方法とテストしやすいコードを書く方法に焦点を当てることをお勧めします。どちらのトピックも挑戦的で、学ぶべきことがたくさんあります。

    関連する問題