     end
 
     assert_raise FunctionClauseError, fn ->
-      Task.Supervisor.start_child(config[:supervisor], __MODULE__, "wait_and_send", [
-        self(),
-        :done
-      ])
+      args = [self(), :done]
+      Task.Supervisor.start_child(config[:supervisor], __MODULE__, "wait_and_send", args)
     end
   end
 
   test "terminate_child/2", config do
+    args = [self(), :done]
+
     {:ok, pid} =
-      Task.Supervisor.start_child(config[:supervisor], __MODULE__, :wait_and_send, [self(), :done])
+      Task.Supervisor.start_child(config[:supervisor], __MODULE__, :wait_and_send, args)
 
     assert Task.Supervisor.children(config[:supervisor]) == [pid]
     assert Task.Supervisor.terminate_child(config[:supervisor], pid) == :ok

    parent = self()
    fun = fn -> wait_and_send(parent, :done) end
    task = Task.Supervisor.async_nolink(config[:supervisor], fun)

    assert Task.Supervisor.children(config[:supervisor]) == [task.pid]

    # Assert the struct

    test "streams an enumerable with fun and bad supervisor fun" do
      Process.flag(:trap_exit, true)

      stream =
        fn _i -> raise "bad" end
        |> Task.Supervisor.async_stream(1..4, &sleep_and_return_ancestor/1, @opts)

      assert {{%RuntimeError{message: "bad"}, _stacktrace}, _mfa} = catch_exit(Stream.run(stream))

      refute_received _

      stream =
        fn _i -> :not_a_supervisor end
        |> Task.Supervisor.async_stream(1..4, &sleep_and_return_ancestor/1, @opts)

      assert {{:noproc, _stacktrace}, _mfa} = catch_exit(Stream.run(stream))

      refute_received _
    end
