Firwat Java-Tester java.net.useSystemProxies verpassen
Gitt d'Start-empfindlech Java-Proxy-Erkennungsoptiounen un d'JVM, déi d'Tester ausféiert, net nëmmen un d'Applikatioun oder un de Build-Starter.
Är Applikatioun erkennt de Systemproxy, awer en JUnit-Test net. Ier Dir den Erkennungscode ännert, bestëmmt wéi eng JVM all Prozess ausféiert an wéi eng Argumenter se krut.
Den JDK dokumentéiert java.net.useSystemProxies als eng Eegenschaft, déi eng Kéier beim Start gepréift gëtt. Se an enger Testmethod ze setzen, kann ze spéit sinn, fir déi Startentscheedung nach ze änneren.
En IDE-Applikatiounsstarter, en IDE-Testrunner, Maven selwer an en ofgezweigte Surefire-Testprozess kënnen all verschidde VM-Argumenter hunn. Eng Proxy-Astelllung an engem Starter ass kee Beweis, datt en anere Starter se weidergegin huet.
Préift d'Konfiguratioun vum ofgezweigte Prozess
Surefires argLine liwwert JVM-Kommandolinnenoptiounen fir ofgezweigt Ausféierungen. Eng Startoptioun kann dohinner gehéieren, wann d'Tester an esou enger Ofzweigung lafen:
<argLine>-Djava.net.useSystemProxies=true</argLine>Füügt d'Optioun an déi existéierend Konfiguratioun vum Projet zesummen. Eng existéierend argLine ze ersetzen kann Coverage-Agenten oder aner erfuerderlech JVM-Astellunge verwerfen. Wann de Build keng Ofzweigung benotzt, ënnersicht amplaz déi JVM, déi d'Tester tatsächlech hostet; argLine ass dokumentéiert als nëmme fir ofgezweigt Ausféierungen effektiv.
Eng net-start-empfindlech Eegenschaft, déi iwwer den Eegeschaftsmechanismus vun engem Testframework geliwwert gëtt, huet en anere Liewenszyklus. Gitt net dovun aus, datt all Eegenschaft d'VM fréi genuch erreecht, just well System.getProperty() während dem Test de gewënschte String zréckgëtt.
Fir en gezielten Proxy-Routingtest kann en explizit konfiguréierte Client och d'Ofhängegkeet vun der Desktop-Konfiguratioun reduzéieren. Java 11+ HttpClient kann dofir en clientlokalen HTTP ProxySelector benotzen. Halt déi Wiel sichtbar an der Absicht vum Test: eng Clientroute testen an d'Proxy-Erkennung vum Betribssystem testen si verschidde Kontrollen.