When we want to test the convergence of a numerical scheme without knowledge of an exact solution, we can use the method of manufactured solutions.
Say that the PDE we want to solve can be written as follows:
$$
u_t + P(u) = F(x,t), \\
u(x,0) = f(x), \\
u(0,t) = g(t),
$$
where $P$ is some differential operator, and $F(x,t)$, $f(x)$ and $g(t)$ are known functions (data). For the purpose of testing convergence of a numerical scheme, simply choose any (appropriately differentiable) function $v$ that you want to be your solution, and operate on it with $\partial_t + P$. In general, the result will be
$$
v_t + P(v) = G(x,t) \neq F(x,t).
$$
However, this doesn't matter if the goal is to study the convergence of the numerical scheme, which will be the same whether we use $F$ or $G$ (so long as both $F$ and $G$ are sufficiently smooth). We may therefore replace our original PDE with
$$
u_t + P(u) = G(x,t), \\
u(x,0) = \tilde{f}(x) ,\\
u(0,t) = \tilde{g}(t),
$$
where $\tilde{f}(x) = v(x,0)$ and $\tilde{g}(t) = v(0,t)$. Since $v$ is known (after all, we have chosen it to be anything we want), we have access to the exact solution to this new PDE, hence we may test the convergence of the numerical scheme as usual.