【问题标题】:learn Scala with TDD使用 TDD 学习 Scala
【发布时间】:2011-05-10 19:52:54
【问题描述】:

我现在正在学习 Scala。我看到那里有 2 个测试框架,ScalaTest 和 Specs。我唯一的问题是我仍然不能轻松地决定哪种语言更好。 此外,我习惯于在代码之前编写测试,目前我不清楚如何在函数式编程中做到这一点。 理想情况下,我想以 TDD 方式学习 Scala,有没有关于它的资源?

【问题讨论】:

    标签: scala tdd specs scalatest


    【解决方案1】:

    有一个功能性的公案,可能是您正在寻找的东西。 Java Posse 的 Dick Wall 开始了一个 github 项目:

    https://github.com/relevance/functional-koans/tree/scala

    你需要通过mvn package启动maven。


    还有一个公案:

    http://www.scalakoans.org/

    感谢@MikeHoss!

    【讨论】:

    • @uberto,据我所知,“函数式 koans”似乎是你可以用来学习函数式编程的练习,因此你的测试失败了,你必须让它通过。是这样吗,迈克尔?
    • 是的,正确。有一个带有一堆单元测试的项目设置。要取得进展,您必须更改当前失败的单元测试以使其通过。然后下一个测试失败,你必须学习新的东西。第一个单元测试很简单:assert(false) // should be true
    • 真的很有趣!我会努力的!
    【解决方案2】:

    所以,测试框架。有other questions 与此相关,但我想指出还有ScalaCheck。 ScalaCheck 的功能不如 Specs 和 ScalaTest,但另一方面,SpecsScalaTest 都可以与之集成。

    就我个人而言,我更愿意使用 ScalaCheck,它可能与您习惯的单元测试框架大不相同。这种差异可以很好地防止您以面向对象的方式进行测试。

    现在,您主要关心的问题是:是否有类似 TDD 的 Scala 教程?我不知道,虽然answer 关于functional koans 似乎接近你想要的。

    【讨论】:

    • 我发现 scalacheck 对于算法和单个单元的低级调整更有用,但对 BDD 和更高级别的规范没有太大帮助。
    • @Kevin 那么你没有正确构建生成器! :-)
    【解决方案3】:

    ScalaTest 是两个框架中功能更丰富、更灵活的。

    话虽如此......我目前更喜欢 Specs,它们似乎在跟上最新的 Scala 版本方面做得更好,而且 IntelliJ 集成似乎也能更好地工作。

    对您来说,Specs 的优势还在于可以学习更小的 API。

    【讨论】:

    • 在 2.8 发布之后,ScalaTest 1.2 最终发布,它与 Scala 2.8 配合得很好。 Kevin 不知何故不知道 ScalaTest 1.2 可以与 Scala 2.8 一起使用。 ScalaTest 1.3 也适用于 Scala 2.8,是截至 2011 年 3 月 20 日的当前版本。
    • 在我写这个答案的时候,我最近一直在与很多 2.8 版本的候选者合作,它们的规格非常密切地跟踪。我仍然记得仅仅因为 ScalaTest 依赖而无法更新项目的挫败感。从那时起,ScalaTest 开始通过 Maven 跟踪它自己的依赖项,因此应该可以快速发布版本,我认为这不会影响我未来(很容易知道,2.9.0 即将成为候选版本)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    相关资源
    最近更新 更多