     assert_ok(42)
   end
 
-  test "assert with true value" do
-    true = assert Value.truthy()
-  end
-
-  test "assert with message when value is false" do
-    try do
-      "This should never be tested" = assert false, "This should be true"
-    rescue
-      error in [ExUnit.AssertionError] ->
-        "This should be true" = error.message
-    end
-  end
-
-  test "assert when value evaluates to false" do
+  test "assert with truthy value" do
+    :truthy = assert Value.truthy()
+  end
+
+  test "assert with message when value is falsy" do
+    try do
+      "This should never be tested" = assert Value.falsy(), "This should be truthy"
+    rescue
+      error in [ExUnit.AssertionError] ->
+        "This should be truthy" = error.message
+    end
+  end
+
+  test "assert when value evaluates to falsy" do
     try do
       "This should never be tested" = assert Value.falsy()
     rescue
       error in [ExUnit.AssertionError] ->
         "assert(Value.falsy())" = error.expr |> Macro.to_string()
-        "Expected truthy, got false" = error.message
+        "Expected truthy, got nil" = error.message
     end
   end
 

    assert argless_macro == 1
  end

  test "refute when value is false" do
    false = refute false
  end

  test "refute when value evaluates to true" do
    try do
      refute Value.truthy()
      raise "refute was supposed to fail"
    rescue
      error in [ExUnit.AssertionError] ->
        "refute(Value.truthy())" = Macro.to_string(error.expr)
        "Expected false or nil, got true" = error.message
    end
  end



  test "assert arguments are not kept for operators" do
    try do
      "This should never be tested" = assert !Value.truthy()
    rescue
      error in [ExUnit.AssertionError] ->
        false = is_list(error.args)
