2

私は新しいF#プロジェクト(まだ多くは作成していません)をいじっていて、TDD方式でそれを行うことを目指しています。したがって、C#プロジェクトでNUnitを使用した経験が豊富で、使用するのはかなり一般的なフレームワークのように思われるため、FsUnitの使用に慣れようとしています。

私のコードは次のようになります。

module DatabaseReaderTest

open NUnit.Framework
open FsUnit

[<TestFixture>]
type DatabaseReaderTest ()=

    [<Test>]
    member x.ResultsAreReturnedFromDatabase =
        DatabaseReader.result.GetSqlString(1) |> should equal "first"

私の知る限り、これはFsUnitホームページ(http://fsunit.codeplex.com/)の例に従いますが、コンパイラーは、[<Test>]これはこの言語要素の有効な属性ではないと言っています。メンバーを意味します。

私がここで間違っていることについてのヒントはありますか?

ありがとう!

4

2 に答える 2

7

おそらく、プロパティではなくメソッドを使用する必要があります。()unit 型の引数を追加するだけです。

于 2011-10-08T15:33:24.863 に答える
4

let補足として、テストを実行する前にカスタムの初期化を必要とせず、NUnit の最近のバージョンを使用している場合は、テスト用に関数がバインドされたモジュールを使用できるはずです。

これにより、もう少し軽量な構文が得られます。一部の人々は、テスト名を通常の英文として記述できるようにするダブルティック構文を使用することも好みます (これはテスト ランナーでうまく表示されます)。

module DatabaseReaderTest =

  [<Test>]
  let ``Results are returned from database`` () =
    DatabaseReader.result.GetSqlString(1) |> should equal "first"
于 2011-10-08T15:48:06.923 に答える