Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Crystal自动编译单元测试_Unit Testing_Crystal Lang - Fatal编程技术网

Unit testing Crystal自动编译单元测试

Unit testing Crystal自动编译单元测试,unit-testing,crystal-lang,Unit Testing,Crystal Lang,据我所知,Crystal可以在编译时执行单元测试,但我找不到关于它们的太多信息 Crystal可以在编译时执行单元测试吗?如果是,我如何在新项目中实现它们,以及如何为它们提供参数? 例如:如果某些测试需要互联网,我是否可以发送/给出/设置一个参数,以便在没有互联网的情况下取消激活这些测试?虽然不能完全回答您的问题,但可能适合您。下面是我如何设置它的,效果非常好。虽然不是水晶碎片,但它是一个在开发环境中非常有用的Ruby宝石 每当我保存文件时,guard都会运行所有规范(这将是您的单元测试)。我推

据我所知,Crystal可以在编译时执行单元测试,但我找不到关于它们的太多信息

Crystal可以在编译时执行单元测试吗?如果是,我如何在新项目中实现它们,以及如何为它们提供参数?

例如:如果某些测试需要互联网,我是否可以发送/给出/设置一个参数,以便在没有互联网的情况下取消激活这些测试?

虽然不能完全回答您的问题,但可能适合您。下面是我如何设置它的,效果非常好。虽然不是水晶碎片,但它是一个在开发环境中非常有用的Ruby宝石

每当我保存文件时,guard都会运行所有规范(这将是您的单元测试)。我推测所有代码都是在运行之前编译的

尽管Crystal Spec()不提供标记,但您可以指定一个文件夹:
Crystal Spec Spec/units
。您可以将需要internet的规范放在另一个文件夹中

您可以使用的另一种方法是编写编译和运行规范的bash(或Ruby)脚本


顺便说一句,你可能不想使用你的规格,单位或其他互联网。您可以使用或通过在测试环境中重新打开类来模拟它们。我一直在使用后一种方法,而且效果很好。

本文对Crystal Spec进行了很好的概述:

我建议任何规范都不要依赖外部连接。具体来说,单元测试应该是可靠的,不要因为外部影响而失败(没有连接、路由问题、API更改等等)。 为外部请求设置模拟,以模拟真实目标的基本行为。
只有集成测试可能需要一些真正的API访问。

您可以在Crystal的
Spec
库中找到文档。

顺便说一句,您可能需要检查Gitter频道()。这些人非常乐于助人,你可以很快得到你问题的答案。他们是,非常感谢