2 つのランダムな英数字文字列で gen/fmap を使用しようとしています。次に、それらを「@」で連結し、「.com」を追加します。しかし、私は構文に苦労しています。
最初の試み:
(gen/fmap str (gen/string-alphanumeric) "@" (gen/string-alphanumeric) ".com")
しかし、gen/fmap は 2 つの引数しか取りません。
2番目の部分をグループ化する2回目の試行も機能しません
(gen/fmap str ((gen/string-alphanumeric) "@" (gen/string-alphanumeric) ".com"))
編集:部分的な解決策があります。メールアドレスを生成しますが、@の前後は同じです。例: john@john.com
これは部分的な解決策です
(def gen-full-string
(gen/such-that #(not= % "") gen/string-alphanumeric))
(gen/fmap #(str % "@" % ".com") gen-full-string)
""
空の文字列がコードをクラッシュさせていたので、gen-full-string を書きました。構文解析があり、検証関数を作成する予定があるため、空の文字列は気にしませんでした。エッジケースではなくコア機能をテストしたかった. 検証を実装したら、おそらく gen-full-string を削除します。したがって、メールジェネレーターは次のようになります(gen/fmap #(str % "@" % ".com") gen/string-alphanumeric)