gpt4 book ai didi

scala - 如何模拟sc​​ala readLine

转载 作者:行者123 更新时间:2023-12-04 05:39:34 25 4
gpt4 key购买 nike

我想为我的主要功能编写一个单元测试,其中有一个 readLine()环形。

我尝试了以下基于java的。我认为 readLine()可能需要System.ininputStream .但它不起作用。 ScalaTest 在 readLine() 上被阻止等待输入。

"readLine" should "work" in {
val in = new ByteArrayInputStream("abc".getBytes)
System.setIn(in)
readLine() === "tester"
}

有任何想法吗?谢谢你。

最佳答案

的正确方法|单元测试就是关注"ports and adapters"图案。

所以你应该有一个接口(interface),它是控制台阅读器的“端口”,这样你就可以在单元测试中模拟它。

此外,您应该有一个 集成测试这可以验证您的“适配器”是否确实适用于真实的控制台。

根据你的问题的标题,我猜你想做一个集成测试。你快到了。您调用了自 Scala 2.11.0 以来已弃用的弃用方法。这段代码应该工作 -

"readLine" should "work" in {
val in = new ByteArrayInputStream("abc".getBytes)
System.setIn(in)
StdIn.readLine() === "abc"
}

关于scala - 如何模拟sc​​ala readLine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com