我正在编写一个Elm测试套件,并希望使用存储在外部文件中的已知良好输入/输出对列表来检查函数的输出.我可以选择外部文件的格式,所以我可以使用JSON,但我需要将它分开,因为它是从其他语言访问的.(我基本上确保该函数的Elm版本与其他版本匹配).
我不想将值硬编码到Elm测试模块中.有没有办法用Elm和elm-test做到这一点?
我正在尝试在我的 Elm 应用程序中测试去抖动功能,但不知道如何进行。
去抖动应用于模糊搜索的文本字段以避免发出过多的http请求,它以这个示例https://ellie-app.com/jNmstCdv3va1为蓝本并遵循相同的逻辑。
type alias Model =
    { search : Maybe String 
    , searchResult : List User
    , debouncingCounter : Int
    }
init : Model
init = 
    { search = Nothing
    , searchResult = [] 
    , debouncingCounter = 0
    }
debounceTime : Time
debounceTime = 350 * Time.millisecond
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of 
        (...)
        SearchInput search ->
            let 
                newCounter = model.debouncingCounter + 1
            in
            case search …我正在使用 Java 和 Maven 来构建我的服务器应用程序(请参阅github),通常您将源代码放在文件夹中src/main/<language>并在src/test/<language>.
使用 Elm,我使用elm-explorations/test来运行我的测试(因为我使用的是 Elm 0.19),但我似乎找不到将测试文件夹更改src/test/elm为tests.
例如,我尝试过更改elm.json和添加:
"test-directories": [
    "src/test/elm"
  ]
但这似乎不起作用。所以我的问题是:
如何更改elm-test假设测试所在的文件夹?
通过“Elm in Action”,我了解到要编写测试,某个模块的测试套件中所需的所有函数和类型都必须由该模块公开。这似乎破坏了封装。我不想公开内部函数和类型构造函数,这些函数和类型构造函数应该保持隐藏状态,只是为了使它们可测试。有没有办法公开内部函数和类型仅用于测试,而不用于常规使用?