Elm 测试:如何检查结果是否错误?

问题描述 投票:0回答:2

我正在为返回

Result
的函数编写测试。我如何测试它“是”一个
Err
(或一个
Ok
)?

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

不起作用。

如何解码非参数?

decode elm
2个回答
5
投票

我可能错过了一个更优雅的解决方案,但我个人只会编写一个辅助函数。

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
会打印一个字符串,然后打印一个应该为 true(在
Expect.true
的情况下)或 false(在
Expect.false
的情况下)的表达式。


0
投票

现在有专门的

Expectation
Expect.ok
Expect.err
– 用于表达
Ok
值的预期变体(
Err
Result
):

Expect.ok : Result a b -> Expectation
Expect.err : Result a b -> Expectation

给定

expectedFailure
类型的
Result a b
值,您可以将
expectedFailure
作为
Err
变体的期望设置为:

\_ -> expectedFailure |> Expect.err
© www.soinside.com 2019 - 2024. All rights reserved.