testing

2025-03-25T21:11:01.481339Z

is there a better alternative for using clojure.test/are that does not use doseq ??

(deftest test-function-files?
  (let [function-to-test #'some-namespace/function-under-test
        test-cases [{:input-file-name   "file-a.extA"
                     :expected-result true
                     :assert-message  "Process extA file"}
                    {:input-file-name   "file-b.exta"
                     :expected-result true
                     :assert-message  "Process exta file"}
                    {:input-file-name   "file-c.extB"
                     :expected-result false
                     :assert-message  "Don't process extB file"}
                    {:input-file-name   ""
                     :expected-result false
                     :assert-message  "Don't process empty name"}
                    {:input-file-name   nil
                     :expected-result nil
                     :assert-message  "Don't process nil name"}
                    {:input-file-name   98765
                     :expected-result false
                     :assert-message  "Don't process non-string name"}]]
    (testing "handle file names with spaces"
      (is (thrown-with-msg? ExceptionInfo #"Invalid input: spaces detected."
                            (function-to-test (make-test-event "file with spaces.extB" 1234)))
          "Should throw error for file names with spaces."))
    (testing "check various file names and extensions"
      (doseq [{:keys [input-file-name expected-result assert-message]} test-cases]
        (is (= expected-result (function-to-test (make-test-event input-file-name 1234))) assert-message)))))

(defn make-test-event [file-name file-size]
  ;; Anonymized event creation, if necessary
  {:file-name file-name :size file-size}) ;; Simplified example

2025-03-25T21:11:30.301059Z

the problem is that people is asking me that clojure.test/are does not have assert-messages

2025-03-25T21:11:47.665559Z

I want a better way to return on cursive-repl + goto on the terminal

2025-03-25T21:11:51.701759Z

if it's possible