Интеграционное тестирование Добавление файла базы данных в мой тестовый проект. Как я могу это сделать

Мне нужно провести интеграционное тестирование. На данный момент у меня есть несколько сценариев, которые запускаются один раз для каждой сборки, которые создают базу данных, если она не существует, и заполняют ее.

Я подумал, что было бы лучше, если бы я мог добавить файл базы данных в тестовый проект, а затем просто заполнить и очистить базу данных соответственно. Даже если это не лучший способ Я наткнулся на назначение на основе Haskell, которое требует определения карты и фильтра в терминах foldr. Ради жизни я '...

Я немного занимаюсь самостоятельным изучением функциональных языков (в настоящее время использую Haskell). Я наткнулся на назначение на основе Haskell, которое требует определения карты и фильтра в терминах foldr. На всю жизнь я не совсем понимаю, как это сделать.

Например, когда я определяю функцию карты вроде:

map'            :: (a -> b) -> [a] -> [b]
map' f []       = []
map' f (x:xs)   = foldr (\x xs -> (f x):xs) [] xs

, я не знаю, почему всегда игнорируется первый элемент списка. Это означает, что:

map' (*2) [1,2,3,4]

приводит к [4,6,8] вместо [2,4,6,8]

Аналогично, моя функция фильтра:

filter'             :: (a -> Bool) -> [a] -> [a]
filter' p []        = []
filter' p (x:xs)    = foldr (\x xs -> if p x then x:xs else xs ) [] xs

при запуске как:

filter' even [2,3,4,5,6]

приводит к [4 , 6] вместо [2,4,6]

Почему это так? И как СЛЕДУЕТ определять эти функции, чтобы получить ожидаемые результаты? Я предполагаю, что с моими лямбда-выражениями что-то не так ...

15
задан klactose 20 April 2011 в 06:40
поделиться