# Understanding \_\_using\_\_, with a practical problem

**URL:** <https://forum.elixirforum.com/t/understanding-using-with-a-practical-problem/50425>\
**Category:** Questions\
**Tags:** exunit, \_\_using\_\_, defmacro\
**Created:** [September 21, 2022, 4:29pm UTC](https://forum.elixirforum.com/t/understanding-using-with-a-practical-problem/50425 "2022-09-21T16:29:53Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![LostKobrakai](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lostkobrakai/32/3072_2.png) [@LostKobrakai](https://forum.elixirforum.com/u/LostKobrakai)\
**Post date:** [September 21, 2022, 6:22pm UTC](https://forum.elixirforum.com/t/understanding-using-with-a-practical-problem/50425/2 "2022-09-21T18:22:36Z")

</div>

You likely want this:

```elixir
defmodule MyTestCase
  use ExUnit.CaseTemplate

  defmacro __using__ (opts) do
    opts
    |> Keyword.put_new(:async, true)
    |> super()
  end
end

```

For overwriting a overwritable ` __using__ ` macro, you need to implement exactly that macro. To call the injected implementation with your changes you can use [`super()`](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#super/1). There’s no need to fiddle with quote in this case as you never need to convert text of code into AST.

---

_[View the full topic](https://forum.elixirforum.com/t/understanding-using-with-a-practical-problem/50425)._
