private final ZutatenRepository zutatenRepository = Mockito.mock(ZutatenRepository.class);
private final ZutatenService service = new ZutatenService(zutatenRepository);
private final List<Zutat> zutatenList = new ArrayList<>();
@Test
public void testFindeZutat_Name() {
Mockito.when(zutatenRepository.findAll()).thenReturn(zutatenList);
Zutat zutat1 = new Zutat();
zutat1.setName("Test");
Zutat zutat2 = new Zutat();
zutat2.setName("Sonstiges");
zutatenList.add(zutat1);
zutatenList.add(zutat2);
Optional<Zutat> zutat = service.findeZutat("test");
assertThat(zutat.isPresent(), is(true))...
Nein, die Tests machen einfach nur "irgendwas" getestet wird dabei allerdings nicht wirklich was."Das sind keine Test, was du da schreibst." Sind es nicht?
@Test
void testCreatePatient() {
Patient patient = new Patient();
long id = 1;
patient.setId(id);
patient.setNachname("Test");
patient.setVorname("Tester");
when(patientRepository.existsById(id)).thenReturn(true);
logger.info(patient.getNachname());
}
So sehe ich das eigentlich auch. Erst der Test und dann den Code daraus ableiten. Aber Chefchen hat mich gezwungen andersherum anzufangen, ich soll jetzt anfangen Dinge "wegzumocken". Das obige zitierte Beispiel ist aus einem recht gut bewertetem Tutorial und nur zum probieren. Entscheidend ist aber diese hierFang bei Tests immer erst an, in normalen Worten zu beschreiben, was du eigentlich testen willst – noch bevor du die erste Zeile Code dafür schreibst. Und wenn du das sinnvoll formuliert hast, kannst du es in Code übersetzen.
@Test
void testGetPatientByID() {
Patient patient = new Patient();
long millis = 1556175797428L;
Date date = new Date(millis);
Assert.assertEquals(millis, date.getTime());
long id = 2;
patient.setId(id);
patient.setGeburtsdatum(date);
patient.setNachname("Test");
patient.setVorname("Tester");
logger.info(patient.toString());
when(patientRepository.findById(id)).thenReturn(Optional.of(patient));
}
Meine Aussage bezog sich nicht auf "Test First", sondern rein auf die TestsSo sehe ich das eigentlich auch. Erst der Test und dann den Code daraus ableiten. Aber Chefchen hat mich gezwungen andersherum anzufangen, ich soll jetzt anfangen Dinge "wegzumocken". Das obige zitierte Beispiel ist aus einem recht gut bewertetem Tutorial und nur zum probieren. Entscheidend ist aber diese hier
Naja, die Sinnhaftigkeit ist da ja auch nicht vorhandenDie Sinnhaftigkeit erschließt sich mir auch nicht so richtig.
Durch den Test kannst du sicherstellen, dass deine Methode tut, was sie sollJedenfalls tut die Methode was sie soll. Den Test brauch ich dazu eigentlich nicht wirklich.
Willst du die Methode des Repositorys testen?Ich will testen, ob die Methode findById(id) einen Patienten zurückgibt.
when(patientRepository.findById(id)).thenReturn(Optional.of(patient));
Ja. Vollkommen. Du mockst damit die Methode. Du sagst Mockito "Wenn die Methode findById mit "Id" aufgerufen wird, dann gib das Optional von patient zurück.Ich mocke die Methode nicht, aber das Repository. Die Methode findById wird in der TestKlasse testGetPatientByID() aufgerufen. Die Zeile
zeigt doch eigentlich was ich will. Wenn der zuvor angelegte Patient gefunden hat, soll er zurückgeben werden und es kommt kein Fehler. Oder verstehe ich da was falsch?Java:when(patientRepository.findById(id)).thenReturn(Optional.of(patient));
private final ZutatenRepository zutatenRepository = Mockito.mock(ZutatenRepository.class);
private final ZutatenService service = new ZutatenService(zutatenRepository);
private final List<Zutat> zutatenList = new ArrayList<>();
@Test
public void testFindeZutat_Name() {
Mockito.when(zutatenRepository.findAll()).thenReturn(zutatenList);
Zutat zutat1 = new Zutat();
zutat1.setName("Test");
Zutat zutat2 = new Zutat();
zutat2.setName("Sonstiges");
zutatenList.add(zutat1);
zutatenList.add(zutat2);
Optional<Zutat> zutat = service.findeZutat("test");
assertThat(zutat.isPresent(), is(true));
assertThat(zutat.get(), is(zutat1));
}
Da hat der Zuschauer nicht aufgepasst. Sein letzter Satz war "We can now test ... let's do that in the following video".Das Überprüfen, hat der im Tutorial nicht gemacht. Vergessen oder Absicht?
Sehr gut.Da hat der Zuschauer nicht aufgepasst.
Keine Zeit. :-D Wenn Chef sagt Mocken, dann Mocken. Die A-Karte liegt bei mir. :-D simple Unit Tests wären ja schön. Sind sie ja auch. Aber da ist der Wunsch der Vater des Gedanken. Aber ihr habt mir in jedem Fall schon weiter geholfen. Nochmals Danke.Mein Tipp wäre erst mal mit simplen Unit-Tests von einfachen Klassen ohne weitere Abhängigkeiten anzufangen - dann ergibt sich wenn man weitermacht der Bedarf fürs Mocken von ganz alleine und man weiß dann auch direkt, warum das braucht![]()
Falsch. Wenn Chef sagt, mocken, dann mocken, wenn notwendig. Und ein Framework braucht man dafür nicht unbedingt (kann die Sache aber erleichtern).Keine Zeit. :-D Wenn Chef sagt Mocken, dann Mocken.
4 Monate nach "Hello World" einen existierenden Monolithen auf Microservices umstellen... denk Dir nix, wenns nicht klappt. Wenn die Anwendung eine gewisse, na sagen wir mal, Komplexität erreicht hat, zählt das zu den schwierigsten Aufgaben aus dem Bereich der Microservices (vgl. Fowler, Wolff, Tilkov).Meine Aufgabe ist es, sein 20 jahre altes Modulsystem im Onlinehandel auf Microservices und so ein Zeug umzustellen.
Der wird schon wissen, warumUnd mein Chef hilft mir nicht.
Hast Du denn eine vernünftige Lernmittel-Quelle? Ohne Werbung machen zu wollen:Ich bin in einer Umschulung. Habe Nachsicht. Vor 4 Monaten hab ich meine erstes Hello World Programm geschrieben, bin jetzt im Praktikum und bekomme gleich die volle Dröhnung. Meine Aufgabe ist es, sein 20 jahre altes Modulsystem im Onlinehandel auf Microservices und so ein Zeug umzustellen. Wenn Chef sagt, mocken, dann Mocken. Das Schlimme ist, ich weiß das er sich was dabei denkt. Und mein Chef hilft mir nicht. Wahrscheinlich will er das später hören... "wenn notwendig". Deswegen finde ich das hier ja so reizend. Das soll ich bestimmt rausfinden. Er vertritt auch die Meinung, daß alles im Internet steht. So verbringe ich nun Tag für Tag, mir Massen an Halbwahrheiten zusammenzusuchen, durch andere zu ergänzen, zu filtern, bis dann irgendwann mal was ganzes halbwegs brauchbares rauskommt. Nicht einfach.
woher stammt denn diese Aussage?Literatur wird mir auch nicht finanziert. Veraltet zu schnell.
Chef. Kann ich aber nach meinen Recherchen der letzten Monate bestätigen. Was die Grundlagen betrifft, das Handwerkszeug, mag das zutreffen. Da ist Literatur erste Wahl. Aber was die Frameworks und ganzen Tools betrifft, die täglich überarbeitet werden, kann das nicht funktionieren. Gerade bei Spring und Spring Boot (mittlerweile alte Hasen) hab ich bemerkt, das da keiner schnell genug ist. Selbst Baeldung kommt mit einigen Sachen nicht hinterher. Code den sie diese Anfang diesen Jahres publiziert haben, wird jetzt nicht mehr unterstützt und als deprecated klassifiziert. Und bei denen denke ich, das sie am Ball sind.woher stammt denn diese Aussage?
:-D In den nächsten Wochen werde ich auf seine sehr, sehr, sehr große Kundendatenbank eines Onlinehandelportals losgelassen. Ohne Netz und doppelten Boden! :-D . Was bis jetzt lief, war alles nur Schnupperkurs. Ich denke, da wird mir dann schon jemand über die Schulter schauen. Alles andere wäre fahrlässig. Die Firma an sich ist schon super. Nur das man sich alles selber beibringen muss, ist ka...eErnst gemeinter Rat: Beiß dich durch, bilde dich fort und sobald das Gefühl hast, einigermaßen Boden unter den Füßen zu haben und verstanden zu haben, was tu tust - such dir eine neue Firma.
Also das klingt alles relativ dubios.Literatur wird mir auch nicht finanziert. Veraltet zu schnell. Deswegen Internet. Die Grundlagen (in Java) haben sie (Bildungsträger) mir versucht in den letzten vier Monaten beizubringen (sehr komprimiert), davor nur das üblich Gedöns (Pflichtenheft, BWL, UML usw.) und jetzt in der Praxis, sehe ich mich mit lauter Tools und Frameworks konfrontiert ("Tag des Erwachens"), die ich irgendwie zusammenschalten muss. Wie weiter oben schon beschrieben... Spring, Spring-Boot, Maven, Swagger, Actuator, Promtheus, Endpoints, RESTful API, Metrics, Eventhandling, Eventbus, Webclient, MVC, Mocking und da kommt ja noch Einiges (nichts davon bei den Grundlagen, wenigstens erwähnen hätten sie es können, moderne Softwareentwicklung). Bis vor 2 Monaten, hab ich noch nichts davon gehört. :-D Aber eins kann ich Euch sagen. Ich werde dafür verantwortlich sein, das Eure Daten mal in andere Hände fallen werden. Irgendwie scheint keine Zeit mehr für fundierte Ausbildung zu sein. Nur noch learning by doing. Zum Kotz...
Vorneweg - das soll jetzt keine Kritik an dir sein.Chef. Kann ich aber nach meinen Recherchen der letzten Monate bestätigen. Was die Grundlagen betrifft, das Handwerkszeug, mag das zutreffen. Da ist Literatur erste Wahl. Aber was die Frameworks und ganzen Tools betrifft, die täglich überarbeitet werden, kann das nicht funktionieren. Gerade bei Spring und Spring Boot (mittlerweile alte Hasen) hab ich bemerkt, das da keiner schnell genug ist. Selbst Baeldung kommt mit einigen Sachen nicht hinterher. Code den sie diese Anfang diesen Jahres publiziert haben, wird jetzt nicht mehr unterstützt und als deprecated klassifiziert. Und bei denen denke ich, das sie am Ball sind.
Dann schau Dir doch einmal die Plattform von Oreilly an. Da ist dann u.a. auch Josh Long aktiv und bietet diese Online Sessions an. (Er gehört mit direkt zum Spring Team ... also up to date. Bei den Sessions kann man auch Fragen stellen ...)Chef. Kann ich aber nach meinen Recherchen der letzten Monate bestätigen. Was die Grundlagen betrifft, das Handwerkszeug, mag das zutreffen. Da ist Literatur erste Wahl. Aber was die Frameworks und ganzen Tools betrifft, die täglich überarbeitet werden, kann das nicht funktionieren. Gerade bei Spring und Spring Boot (mittlerweile alte Hasen) hab ich bemerkt, das da keiner schnell genug ist. Selbst Baeldung kommt mit einigen Sachen nicht hinterher. Code den sie diese Anfang diesen Jahres publiziert haben, wird jetzt nicht mehr unterstützt und als deprecated klassifiziert. Und bei denen denke ich, das sie am Ball sind.
Knapp 50 Jahre alt, aber ja.Du bist ein Junior Developer.
Ja, nein. :-DDieser benötigt selbstverständlich Weiterbildung und Führung
Zwischenergebnisse werden abgefragt, für Fragen beantworten, fehlt meist die Zeit.Es fehlt also jemand, der als Ansprechpartner fungiert, der Fragen ausführlich beantworten kann und Zwischenergebnisse abfragt und prüft!
Es handelt sich um eine Umschulung zum Fachinformatiker/Anwendungsentwicklung (Sorry ich muss grad lachen). Dauer 2 Jahre. In den zwei Jahren sollte man das lernen, wofür in der normalen Ausbildung 3,5 Jahre vorgesehen sind (da geht schon eher was).Weiterbildung: Es ist toll, dass Du da auf irgendwelche Fortbildungen kommst. Die bringen aber nur begrenzt etwas. Und dann dieses Stückwerk aus dem Internet: Ganz mangelhaft. Die einzelnen Seiten mögen sogar gut sein, aber dann wird lediglich auf einen Punkt Wert gelegt und andere werden teilweise komplett ignoriert. Wichtige Dinge werden weggelassen um es kurz und einfach zu halten. Also ich sehe da ein riesiges Problem.
Wie geil ist das denn?Ich arbeite bei einem Konzern, wo alle Mitarbeiter entsprechenden Zugang zu Lerninhalten haben und da sind Online Schulungen ebenso enthalten wie Zugriff auf Bücher und so...
Mir fehlen im Schnitt jeden Monat 200 Euro zum normalen Leben für mich und meine Familie. Bei 1500 für 3 Personen, bleibt nur das Inet als Informationsquelle. Vor 15 Jahren mit 4000 ging es besser :-D. Ich hab aus der Zeit noch ein Haufen C Bücher im Regal! :-DSelbst Geld in die Hand nehmen
Gibt es von Fehlen eigentlich noch eine Steigerungsform? :-D Kann, was einem unbekannt ist, als es fehlen bezeichnet werden? Es fehlt ja alles erst jetzt, seitdem ich davon weiß. :-D Sehr philosophisch. Dieser verdammte Makel sollte eigentlich in der Ausbildung beseitigt werden. Du hast natürlich recht. Ich hab von allem was gehört, zu allem was gelesen, alles in Code umgesetzt, einen funktionierenden RESTfull Service mit fast allem Pipapo aufgesetzt, sagen kann ich auch was dazu, aber von Fachwissen kann man da nicht sprechen. Im Detail ist Eventhandling ist noch eine riesen Baustelle. Kapier ich nicht. Nur mal so nebenbei.Dir fehlt - soweit man das Beurteilen kann anhand des Threads - einiges an Grundlagen bzw. Fundament.
Das können ja wohl nun wirklich die Wenigsten. Also ich meine, nicht was ich tue, sondern was sie selbst tun. :-D Aber auch da hast Du recht. Trotzdem, es wird, nicht zuletzt durch solche Konversationen hier, mit Euch, nicht weniger sondern mehr. Heute früh wusste ich weniger als jetzt. Dank Euch. Besser kanns nicht laufen.Ob du aber immer verstehst, was genau du da tust
Problem ist, das ist ein Praktikumsplatz. Ohne Praktikum, keine IHK Abschlussprüfung. Wir sind 24 Leute in der Ausbildunsgtruppe (verteilt auf ganz Deutschland). Nur 3 haben einen Praktikumsplatz bekommen (alle anderen Absagen wegen Corona). Einer davon bin ich. Ich hab einen. Aber auch nur, weil es ein alter Bekannter ist, mit dem ich zusammen Informatik studiert habe. Und ja, ich bin nach zwei Semestern wegen Mathe rausgeflogen. :-D Das war aber im Pleistozän. Da wart ihr alle noch flüssig (ist jetzt mal eine Vermutung :-D, ein bisschen Spaß muss sein)Deswegen der ernstgemeinte Rat, dir ein Exit-Szenario auszudenken mit einem Firmen-Wechsel.
Schau ich mir an.Kent Beck
An welcher Stelle hab ich das raushängen lassen. War dann ein Versehen. Ich bin alles andere als überzeugt. Aber die Umstände zwingen mich dazu weiterzumachen. Ein Zurück oder einen Richtungswechsel gibt es derzeit nicht. Und ganz nebenbei, macht es auch Spaß 10 Stunden vor dem Monitor zu hängen. Die letzten 2 Monate habe ich 15 Kilo abgenommen, weil ich vergessen habe zu essen. :-DDu hast Dich scheinbar entschieden und bist überzeugt von Deinem Weg
Deswegen hab ich es ja auch als Exit-Szenario bezeichnetProblem ist, das ist ein Praktikumsplatz. Ohne Praktikum, keine IHK Abschlussprüfung. Wir sind 24 Leute in der Ausbildunsgtruppe (verteilt auf ganz Deutschland). Nur 3 haben einen Praktikumsplatz bekommen (alle anderen Absagen wegen Corona). Einer davon bin ich. Ich hab einen. Aber auch nur, weil es ein alter Bekannter ist, mit dem ich zusammen Informatik studiert habe. Und ja, ich bin nach zwei Semestern wegen Mathe rausgeflogen. :-D Das war aber im Pleistozän. Da wart ihr alle noch flüssig (ist jetzt mal eine Vermutung :-D, ein bisschen Spaß muss sein)
Die gesunde Gesichtsfarbe kommt nicht von der Sonne - der Kaffee hat für den Teint gesorgtDie letzten 2 Monate habe ich 15 Kilo abgenommen, weil ich vergessen habe zu essen. :-D
Chef. Kann ich aber nach meinen Recherchen der letzten Monate bestätigen. Was die Grundlagen betrifft, das Handwerkszeug, mag das zutreffen. Da ist Literatur erste Wahl. Aber was die Frameworks und ganzen Tools betrifft, die täglich überarbeitet werden, kann das nicht funktionieren. Gerade bei Spring und Spring Boot (mittlerweile alte Hasen) hab ich bemerkt, das da keiner schnell genug ist. Selbst Baeldung kommt mit einigen Sachen nicht hinterher. Code den sie diese Anfang diesen Jahres publiziert haben, wird jetzt nicht mehr unterstützt und als deprecated klassifiziert. Und bei denen denke ich, das sie am Ball sind.woher stammt denn diese Aussage?
Ich schmeiß mich grad wech vor lachen. :-D Zumal ich in Kannen rechne, nicht in Tassen. Als abschließenden Satz möchte ich noch loswerden, daß ich die Konversation mit Euch sehr genossen habe und Euch für die aufmunternden Worte von ganzem Herzen danke. Danke für Eure Geduld. Jetzt muss ich aber erstmal meine schon kleineren Wissenlücken mit JUnit Jupiter und Mocken schließen. Vielleicht esse ich auch ne Kleinigkeit. Zur Kanne Kaffee.Die gesunde Gesichtsfarbe kommt nicht von der Sonne - der Kaffee hat für den Teint gesorgt![]()
Ich bin zwar kein Anfänger mehr, da ich nicht mehr da stehe, wo ich losgegangen bin, aber ihr seid viel weiter und darüber bin ich sehr froh. Auch menschlich ist das hier eine andere Hausnummer. In anderen Foren benehmen sich viele so, als ob sie als Softwareentwickler auf die Welt gekommen wären. Hier nicht. Welch ein Glück für mich. Danke.Dann bist Du auf jeden Fall hier im Forum richtig. Ich hoffe, dass Dir hier immer weiter geholfen werden kann, so dass Du Deine Ziele erreichen kannst.
Könnte schlimmer sein: 30 Minuten lesen, 30 Minuten schreiben und 9 Stunden verzweifelnIm Moment ist es so, daß ich 9 Stunden lese, 30 Minuten Code und dann 30 Minuten verzweifle. Schon sind 10 Stunden um. :-D
Herrlich!!!!!! :-DKönnte schlimmer sein: 30 Minuten lesen, 30 Minuten schreiben und 9 Stunden verzweifelnWenn ich da an so manchen Tobsuchtsanfall in meinen jungen Jahren denke, kommt die Verteilung sogar hin...
![]()
Übrigens auch durch ein fast 20 Jahre altes Buch geprägtIch würde hier den DDD-Ansatz nicht außer Acht lassen.
Persönliche Meinung (und zT Erfahrung): Diagramme sind ungemein hilfreich, auf syntaktisch korrekte UML-Diagramme würde ich aber nur selten achten, meist sind die den Aufwand nicht wert.Ansonsten hat mir mein Prüfer vorgeworfen, wieso ich nicht UML genutzt habe.