2017-10-09 10 views
3

コンパイル中に単体テストを実行することはできますが、私はそれらについて多くの情報を見つけることができませんでした。コンパイル時の自動化された単体テストテスト

Crystalはコンパイル中にユニットテストを実行できますか?はいの場合は、どうすれば新しいプロジェクトに実装できますか?
例:いくつかのテストでインターネットが必要な場合、私はインターネットを持たない場合、どうにかそれらを非活性化する引数を送信/譲渡/設定できますか?

+0

ところで、ギターチャンネル(https://gitter.im/crystal-lang/crystal)をチェックしたい場合があります。人々は非常に有用であり、あなたはあなたの質問に素早く答えることができます。 –

+0

彼らは、ありがとうたくさん –

答えて

2

あなたの質問に対する答えは正確ではありませんが、Guardが役立ちます。ここで私はそれを設定し、どのようにうまく動作します。 Crystal Shardではありませんが、dev環境でうまく動作するRubyの宝石です。

ファイルを保存するたびに、guardはすべての仕様(ユニットテスト)を実行します。私はすべてのコードが実行前にコンパイルされていることを確認します。

Crystal Spec(https://crystal-lang.org/api/0.23.1/Spec.html)ではタグ付けができませんが、crystal spec spec/unitsというフォルダを指定できます。インターネットが必要な仕様を別のフォルダに置くことができます。

もう1つの方法は、仕様をコンパイルして実行するbash(またはRuby)スクリプトを作成することです。

ところで、おそらく、スペック、ユニットなどのためにインターネットを使いたくないのです。 Webmockを使用してモックするか、テスト環境でクラスを再度開くことができます。私は後者のアプローチを使用しており、うまくいきます。私は任意の仕様のための外部からの接続に依存しないようにお勧めしたいhttp://ruby-journal.com/crystal/testing-whirlwind-tour-in-crystal-lang/

+0

仕様私は感謝のために探していたものでした –

3

この記事では、クリスタル仕様にわたって良好な概要を示します。特にユニットテストは信頼できるものでなければならず、外部の影響(接続の問題、ルーティングの問題、APIの変更など)が原因で失敗することはありません。 外部ターゲットが実際のターゲットの本質的な動作を模倣するようにモックを設定します。 統合テストのみが実際のAPIアクセスを必要とする可能性があります。

1

ドキュメントは、CrystalのSpecライブラリhereで見つけることができます。

関連する問題