При создании тестового класса с помощью FsUnit [<Test>] не является допустимым атрибутом члена. Зачем?
Я возлюсь с новым проектом F# (из которого я не сделал много), и я стремлюсь сделать это в стиле TDD. Итак, я пытаюсь ознакомиться с использованием FsUnit, так как у меня большой опыт использования NUnit в проектах на C#, и кажется, что это довольно распространенная среда для использования.
Мой код выглядит следующим образом:
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>]
не является допустимым атрибутом этого языкового элемента, под которым я предполагаю, что он означает член.
Любые советы о том, что я делаю здесь не так?
Спасибо!
2 ответа
Вы, вероятно, должны использовать метод, а не свойство. Просто добавьте ()
аргумент типа единицы.
В качестве примечания: если вам не нужна какая-либо пользовательская инициализация перед запуском тестов и если вы используете последнюю версию NUnit, то вы сможете использовать модуль с let
связанные функции для ваших тестов.
Это дает вам немного более легкий синтаксис. Некоторым людям также нравится использовать синтаксис двойного тика, который позволяет написать имя теста в виде обычного предложения на английском языке (что хорошо видно в тестовом прогоне):
module DatabaseReaderTest =
[<Test>]
let ``Results are returned from database`` () =
DatabaseReader.result.GetSqlString(1) |> should equal "first"