Как увеличить охват для типов записей линзами? - PullRequest
0 голосов
/ 14 октября 2018

Фон

Я использую типы записей с объективом .Я написал несколько модульных тестов с HUnit и HSpec.

Тем не менее, отчет о покрытии hpc показывает, что полевые методы доступа никогда не выполнялись.

Таким образом, способствуя снижению охвата для типов записей.

Пример

data MetricValue =
  MetricValue { _average   :: Maybe Scientific
              , _count     :: Maybe Scientific
              , _maximum   :: Maybe Scientific
              , _minimum   :: Maybe Scientific
              , _timeStamp :: Text
              , _total     :: Maybe Scientific
              } deriving (Generic, Show)

makeLenses ''MetricValue

Поля _average, _count, _maximum и т. Д. Выделены желтым цветом, указывая на то, что они никогда не выполнялись.

Вопросы

Как мне улучшить покрытие?

Как мне, вероятно, следует протестировать типы записей с помощью линз?

1 Ответ

0 голосов
/ 15 октября 2018

makeLenses не выполняет функции доступа к полям _average и т. Д., А просто использует их для построения линз.

Если вы напишите код, который использует aValue ^. average, тогда функция _average будетназывается объективом.

...