Im `year`-Feld akzeptiert `biblatex` nicht ganzzahlige Wert wie `o.J.` noch relativ gut. Es gibt lediglich eine Warnung der Art
```
WARN - legacy year field 'o.J.' in entry 'Test.o.J.' is not an integer - this will probably not sort properly.
```
was nicht ganz unverständlich ist.
Bei `date` sähe das anders aus, dort muss das Feld im ISO8601-Format befüllt werden und `o.J.` ist dann ganz klar ein Fehler.
Im Allgemeinen ist es besser, einfach kein `year` oder `date` anzugeben, wenn man keins hat. Der Stil entscheidet dann, was passieren muss. Zumeist wird einfach kein Datum angezeigt, bei Name-Jahr-Zitierstilen wird eventuell ein "o.D." ausgegeben.
Allerdings ist es so, dass die Standard `authoryear`-Stile recht "verzweifelt" versuchen, dennoch ein Jahr anzuzeigen, wenn `date`/`year` nicht gegeben ist, und dann auf `urldate` zurückgreifen, was unter Umständen nicht gewünscht ist. Abstellen kann man das mit `\DeclareLabeldate`.
    \documentclass{article}
    
    \usepackage[T1]{fontenc} 
    \usepackage[utf8]{inputenc} 
    \usepackage[ngerman]{babel} 
    \usepackage[autostyle]{csquotes}
    \usepackage[backend=biber, style=authoryear]{biblatex}
    
    \DeclareLabeldate{%
      \field{date}
      \field{year}
      \field{eventdate}
      \field{origdate}
      \literal{nodate}
    }
    
    \begin{filecontents}{\jobname.bib}
    @online{Test.o.J.,
     editor  = {Test},
     title   = {Test},
     url     = {https://example.com},
     urldate = {2021-01-01},
     file    = {Test},
    }
    \end{filecontents}
    \addbibresource{\jobname.bib}
    
    \begin{document}
      Lorem~\autocite[2]{Test.o.J.}
      \printbibliography
    \end{document}
Man beachte auch die von Bartman in den Kommentaren angesprochenen Punkte
 * Im Feld `url` sollte die nackte URL stehen. Das `\url{...}`-Makro ist unnötig und sogar der Sache abträglich.
 * Im `postnote`-Argument braucht man bei einfachen Seitenzahlen, Seitenzahlen das `S.~` nicht anzugeben, das kann `biblatex` selbst.
selbst. (Das ist besonders für Dokumente auf Englisch interessant, da `biblatex` dort sogar automatisch zwischen "p." und "pp." wechselt.)
 * Die Option `babel` von `csquotes` heißt seit mehr als 11 Jahren `autostyle`. `german=quotes` ist die Voreinstellung.