Path: csiph.com!feeder.erje.net!2.eu.feeder.erje.net!ecngs!feeder2.ecngs.de!87.79.20.101.MISMATCH!newsreader4.netcologne.de!news.netcologne.de!.POSTED.xdsl-89-0-92-227.netcologne.de!not-for-mail From: Patrick Roemer Newsgroups: de.comp.lang.java Subject: =?UTF-8?Q?Re:_Mocking_von_Dateien_in_privaten_Methoden_m=c3=b6glich?= =?UTF-8?Q?=3f?= Date: Wed, 6 Sep 2017 20:46:33 +0200 Organization: news.netcologne.de Distribution: world Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 6 Sep 2017 18:46:33 +0000 (UTC) Injection-Info: newsreader4.netcologne.de; posting-host="xdsl-89-0-92-227.netcologne.de:89.0.92.227"; logging-data="17882"; mail-complaints-to="abuse@netcologne.de" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.0 In-Reply-To: Content-Language: en-US Xref: csiph.com de.comp.lang.java:13128 Responding to Christian H. Kuhn: > Am 01.09.2017 um 20:39 schrieb Patrick Roemer: >> Das Problem scheint doch schlicht das "Singleton" QFdsbStarter.home() zu >> sein. Reich den Path einfach rein, dann kannst Du für die Tests an >> beliebiger Stelle entsprechende kleine Dateien anlegen - ggfs. direkt in >> jimfs, dann haben die Tests überhaupt nix mit dem lokalen Dateisystem zu >> schaffen. > > Ich habe PowerMockito gefunden, das behauptet, sowas zu können. Ich > werds probieren. | And in order to facilitate decent code designs and make the public API | simple, some desired features have been intentionally left out. In | some cases, however, these shortcomings force testers to write | cumbersome code just to make the creation of mocks feasible. [http://www.baeldung.com/intro-to-powermock] Ich würde ja eher zu decent code design raten. Mein Vorschlag war, das Singleton loszuwerden, nicht das Singleton zu mocken. Gib den Pfad zum Datenverzeichnis einfach als Konstruktor- oder Methodenparameter rein und fertig. Viele Grüße, Patrick