В DB2 date
не имеет временной составляющей.
Итак, попробуйте to_timestamp()
:
select to_timestamp('10-Feb-2019 11:20', 'DD-Mon-yyyy hh24:mi')
Обратите внимание, что секунды не указаны в строковом значении, поэтому их не должно быть в спецификации формата. Тем не менее, окончательное значение будет иметь секунды - все установлено на ноль.
Финализаторы запускаются в выделенном высокоприоритетном фоновом потоке. Исходя из предыстории вашего поста, я понял, что вы можете просто сделать
GC.Collect();
GC.WaitForPendingFinalizers();
Collect ()
запланирует любые некорневые экземпляры для финализации, а затем поток будет ждать завершения потока финализатора.
Вы можете использовать GC.RegisterForFullGCNotification
, запускать полную коллекцию с помощью GC.Collect (GC.MaxGeneration)
, а затем методы GC.WaitForFullGCComplete
и GC.WaitForPendingFinalizers
, но убедитесь, что используете это только в своих тестах, они не должны использоваться для производства код.
Финализаторы всегда выполняются в отдельном потоке независимо от того, используете ли вы одновременный сборщик мусора или нет. Если вы хотите убедиться, что финализаторы были запущены, попробуйте вместо этого GC.WaitForPendingFinalizers
.
Более простой / лучший способ сделать это может состоять в использовании насмешек и проверки ожидания, что Dispose был вызван явно.
Пример использования RhinoMocks
public void SomeMethodTest()
{
var disposable = MockRepository.GenerateMock<DisposableClass>();
disposable.Expect( d => d.Dispose() );
// use constructor injection to pass in mock `DisposableClass` object
var classUnderTest = new ClassUnderTest( disposable );
classUnderTest.SomeMethod();
disposable.VerifyAllExpectations();
}
Если метод должен создать, а затем утилизировать объект, то я бы использовал и внедрил фабричный класс, способный создать фиктивный объект. В приведенном ниже примере на заводе используется заглушка, поскольку это не то, что мы проверяем в этом тесте.
public void SomeMethod2Test()
{
var factory = MockRepository.Stub<DisposableFactory>();
var disposable = MockRepository.GenerateMock<DisposableClass>();
factory.Stub( f => f.CreateDisposable() ).Return( disposable );
disposable.Expect( d => d.Dispose() );
// use constructor injection to pass in mock factory
var classUnderTest = new ClassUnderTest( factory );
classUnderTest.SomeMethod();
disposable.VerifyAllExpectations();
}