2017-01-01 1 views
1

Я пишу тесты для функций, которые возвращают результат. Как проверить, что это «есть» Err (или «Хорошо», если на то пошло)?Испытание Elm: как проверить, является ли результат Err?

\() -> Expect.equal expectedFailure (Err _) 

не работает.

Как декодировать непараметр?

+0

Это не поможет вам сейчас, но есть «Expect.err», который был добавлен для этого точного случая и будет в следующей версии https://github.com/elm-community/elm-test/pull/90 – robertjlooby

+0

Прохладный печенье !! –

ответ

4

Возможно, будет более элегантное решение, которое я пропустил, но я лично просто напишу вспомогательную функцию.

resultOk result = 
    case result of 
     Ok _ -> True 
     Err _ -> False 

затем в тестах

Expect.true "expected this to be OK" (resultOk <| Ok "All good") 
Expect.false "expected this to be an error" (resultOk <| Err "Oh no!") 

Expect.true и Expect.false взять строку для печати, если тест не пройден, а затем выражение, которое должно быть истинным (в случае Expect.true) или ложным (в случай Expect.false).

+0

Я задавался вопросом, могу ли я расшифровать значение внутри функции, если это не параметр. Я думаю, что ваш путь более прямой, и я создаю вспомогательные функции, подобные этому. благодаря –

Смежные вопросы