OneTimeSetUp: недопустимая подпись для метода SetUp или TearDown: System-IDisposable-Dispose
Я хотел бы использовать атрибут teardownatatte nunit в сочетании с реализацией System.IDisposable, потому что я хотел бы использовать use
Ключевое слово в F#. Почему я получаю эту ошибку при запуске теста?
[<TestFixture>]
type public when_it_connects_to_database() =
interface IDisposable with
[<TearDown>]
member this.Dispose() =
this.connection.Dispose()
member val public connection : ApplicationDbContext = createdatabasegateway true
with get, set
[<TestCase(true)>]
member public this.it_succeeds(testmode:bool) : ApplicationDbContext =
this.connection <- createdatabasegateway testmode
this.connection
[<Test>]
member public this.it_can_read_the_database() =
this.connection.AvailableExchanges.AsEnumerable().Count()
Имя теста: it_can_read_the_database Тестовое полное имя: tests.when_it_connects_to_database.it_can_read_the_database Тест: строка 29 Результат теста: сбой Длительность теста: 0:00:00.0000001
Сообщение о результате: OneTimeSetUp: недопустимая подпись для метода SetUp или TearDown: System-IDisposable-Dispose
1 ответ
Если тестовое устройство реализует IDisposable, NUnit утилизирует его после запуска всех тестов и любого метода, помеченного OneTimeTearDownAttribute
побежал.
Маркировка вашего метода утилизации с помощью TearDownAttribute
будет означать, что вы пытаетесь утилизировать объект после каждого теста, и, очевидно, не годится для каких-либо тестов после первого.
Фактическое сообщение об ошибке, которое вы видите, скрывает тот факт, что вы не должны использовать TearDownAttribute
на все для этого метода. Просто внедрите IDisposable, и объект будет удален в нужное время.