Unit testing Crystal自动编译单元测试
据我所知,Crystal可以在编译时执行单元测试,但我找不到关于它们的太多信息 Crystal可以在编译时执行单元测试吗?如果是,我如何在新项目中实现它们,以及如何为它们提供参数?Unit testing Crystal自动编译单元测试,unit-testing,crystal-lang,Unit Testing,Crystal Lang,据我所知,Crystal可以在编译时执行单元测试,但我找不到关于它们的太多信息 Crystal可以在编译时执行单元测试吗?如果是,我如何在新项目中实现它们,以及如何为它们提供参数? 例如:如果某些测试需要互联网,我是否可以发送/给出/设置一个参数,以便在没有互联网的情况下取消激活这些测试?虽然不能完全回答您的问题,但可能适合您。下面是我如何设置它的,效果非常好。虽然不是水晶碎片,但它是一个在开发环境中非常有用的Ruby宝石 每当我保存文件时,guard都会运行所有规范(这将是您的单元测试)。我推
例如:如果某些测试需要互联网,我是否可以发送/给出/设置一个参数,以便在没有互联网的情况下取消激活这些测试?虽然不能完全回答您的问题,但可能适合您。下面是我如何设置它的,效果非常好。虽然不是水晶碎片,但它是一个在开发环境中非常有用的Ruby宝石 每当我保存文件时,guard都会运行所有规范(这将是您的单元测试)。我推测所有代码都是在运行之前编译的 尽管Crystal Spec()不提供标记,但您可以指定一个文件夹:
Crystal Spec Spec/units
。您可以将需要internet的规范放在另一个文件夹中
您可以使用的另一种方法是编写编译和运行规范的bash(或Ruby)脚本
顺便说一句,你可能不想使用你的规格,单位或其他互联网。您可以使用或通过在测试环境中重新打开类来模拟它们。我一直在使用后一种方法,而且效果很好。本文对Crystal Spec进行了很好的概述: 我建议任何规范都不要依赖外部连接。具体来说,单元测试应该是可靠的,不要因为外部影响而失败(没有连接、路由问题、API更改等等)。 为外部请求设置模拟,以模拟真实目标的基本行为。
只有集成测试可能需要一些真正的API访问。您可以在Crystal的
Spec
库中找到文档。顺便说一句,您可能需要检查Gitter频道()。这些人非常乐于助人,你可以很快得到你问题的答案。他们是,非常感谢