問題タブ [clojure.spec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - Clojure 仕様は、ネストされたマップ値を強制します
次のようにマップ値を強制します。
ただし、代わりに次のマップで同じことを行う方法がわかりません。
どの::config
ように定義する必要がありますか? {::nested-data {::port "12345"}}
また、代わりに持っている方が望ましいでしょうか?
clojure - clojure.spec では、「s/or」と「s/alt」の違いは何ですか?
s/or
clojure.spec では、との違いは何s/alt
ですか? 違いを説明するために、いくつかの良い例を挙げてください。
clojure - 名前空間キーワードが JSON の仕様を無効にする
Clojure.spec を使用して JSON の構造を検証しています (後で別の形式に変換します)。
(ここでs
はclojure.spec
名前空間とjson
を参照しますclojure.data.json
。)
s/valid?
上記のように、キーワードが名前空間化されていないため、解析された JSONの失敗が見られます。
JSON が有効と見なされるようにコードを調整するにはどうすればよいですか?
clojure - clojure.spec による解析
次のデータを検討してください。
これは、ベクトルのベクトルの値を持つ :names という 1 つのキーを持つハッシュマップです。内部ベクトルには、最初の要素として文字列を含める必要があり、オプションでキーワード :lucky を 2 番目の要素として含めることができます。
前の 2 つの文は次のように説明する必要がありますclojure.spec
。ベクター内の項目から始めましょう。
これは機能します。ただし、オプションが1つしかない場合。解析された結果は次のように良くなりませんか?
これは clojure.spec で実行できますか?
これにより、次のことができます。
ただし、テストに合格したように見えますが、アイテムが解析されなくなったのはなぜですか?
編集: これは、alpha7 から alpha10 リリースに切り替えることで解決できます。coll-of は引数を 1 つしか取りません。
最後に、私の仕様は次のようになり、前述の警告があります。
clojure - clojure.spec は、従来の機能自動化テストをどの程度置き換えることを意図していますか?
Clojure 1.9 の新しい clojure.spec 機能に関するスクリーンキャストやブログが登場し始めると、clojure.spec が、以前は clojure などのより「伝統的な」自動テスト ライブラリによって実行されていたリスク軽減の多くを実行できることが明らかになりました。 .test、midje、speclj、および test.check。
clojure.test の機能が本質的に clojure.spec 内で複製されるという意図はありますか? 今日、Clojure 1.9 以降で実行する新しいアプリの構築を開始する場合、上に挙げたテスト ライブラリを脇に置き、代わりに clojure.spec だけに頼って、アプリの動作に関して同様のレベルの信頼を得るでしょうか?