- Verschifft
- 27. August 2026 um 19:15 UTC
- Autor
- Kamo
- Ausschuss
- 1608785
BL1 Task 5, Shared-Bibliothek halb. Fünf Zeitschriften-Enums, drei Entitäten und drei Repositories unter **************** Keine Stereotypen: BillingWormGuard ist eine schlichte Abschlussklasse mit einem privaten Konstrukteur, und SharedLibBeanSafetyTest ist grün. Zwei bewusste Verbesserungen gegenüber der Lohn- und Gehaltsabrechnungsquelle: 1. THE TERMINAL-RUN GUARD PAYROLL DOKUMENTE UND HABEN NICHT (Defekt 5). PayrollSyncRun Javadoc behauptet, "ein Terminal-Lauf wird nie neu geschrieben" mit nichts dahinter. BillingSyncRun setzt es durch. Der Plan gibt die Wache als nackte Lektüre des aktuellen Feldes an: if (state != null && state != BillingSyncRunState.RUNNING) { werfen ... . Diese Version ist FALSCH und hätte die Produktion abgebrochen. @PreUpdate Brände NACH dem Anrufer hat das Unternehmen mutiert, so sieht es den Terminal-Zustand BillingSyncJournal.complete() hat gerade zugewiesen und verweigert die eine schreiben Zeile existiert, um zu empfangen - complete() würde auf jedem Lauf werfen und closeStaleRuns() auf jedem Sweep. Der Wächter vergleicht sich daher mit dem Zustand als LOADED, aufgenommen von einem @PostLoad-Schnappschuss in ein @Transient Feld. A Zeile nie geladen (eine frische "neue") wird auf seinen aktuellen Zustand, der hält beurteilt der eigene Test des Plans aussagekräftig. 2. dbNow() (Self-Review's markierte Lücke). Gehaltsabrechnung liest die Datenbankuhr von TimecardPunchRepository; InvoicingService hat keinen Punch-Tisch. Hinzugefügt ************ @Query(Wert = "SELECT CAST(now() AS-Zeitstempel)", nativeQuery = true) - mit das SQL-Standard CAST, weil ein "::"-Besetzung still verstümmelt wird: Hibernate liest als Name-Parameter-Präfix und dreht sich jetzt()::timestempel in : Zeitstempel. BillingSyncJournal ist sein einziger Anrufer und der einzige wirkliche Autor von aufgetreten; die Entitäten @PrePersist LocalDateTime.now() Fallbacks werden beibehalten als letztes Mittelwächter und als solche dokumentiert (Fehler 6). Beide WORM-Einheiten werden von NARROW-Repositorien bedient, die das Repository erweitern, nicht JpaRepository, so gibt es keine Stapel löschen, um vorbei zu Fuß vorbei @PreRemove. TDD-Beweis - RED zuerst (Kompilation, bevor es irgendeiner der Klassen gab): [ERROR] ************ nicht finden [ERROR] Symbol: Klasse BillingSyncNachfolge [ERROR] Standort: Klasse **************** ... 20 weitere "nicht finden Symbol" Fehler, BUILD FAILURE GRÜNE nach der Implementierung: Testlauf: 7, Ausfälle: 0, Fehler: 0, Übersprung: 0 Mutationen, jede von einer isolierten "git-Archiv HEAD"-Kopie mit eigener target/ and its own -Dmaven.repo.local (dieser Checkout wird mit anderen geteilt Sitzungen und eine rote Suite hier ist in der Regel jemand anderes rot Phase): MUTATION D - DurchsetzungTerminalImmutbarkeit's "Wurf" ersetzt mit "Rückkehr" (die Mutation der Namen des Plans Schritt 6): Testlauf: 7, Ausfälle: 2, Fehler: 0, Übersprung: 0 <<< FAILURE! **************** <<< FAILURE! java.lang.AssertionError: Erwarten Code, um eine Wurffläche zu erhöhen. bei **************** **************** <<< FAILURE! java.lang.AssertionError: Erwarten Code, um eine Wurffläche zu erhöhen. bei **************** MUTATION E - der Wachmann spezifisch umgeschrieben, wie der Plan es vorschreibt, dh ein nacktes Lesen Sie von "State" ohne @PostLoad-Schnappschuss. Dies ist der Beweis, dass die Die Version des Plans ist kaputt: Testlauf: 7, Ausfälle: 1, Fehler: 0, Übersprung: 0 <<< FAILURE! **************** <<< FAILURE! java.lang.AssertionError: Erwarten Code nicht zu einem Wurfplatz zu erhöhen, aber gefangen ************ BillingSyncRun null ist SUCCEEDED und ist Beweise für einen abgeschlossenen Lauf; es kann nicht umgeschrieben werden. bei **************** bei **************** MUTATION F - BillingWormGuard.reject machte eine No-Op: Testlauf: 7, Ausfälle: 4, Fehler: 0, Übersprung: 0 <<< FAILURE! ************ -- Erwarten Sie Code, um einen Wurfplatz zu erhöhen. ************ -- Erwarten Sie Code, um einen Wurfplatz zu erhöhen. ************ -- Erwarten Sie Code, um einen Wurfplatz zu erhöhen. ************ -- Erwarten Sie Code, um einen Wurfplatz zu erhöhen. Alle drei kehrten um. Volle Bibliothekssuite danach: Tests Lauf: 2288, Ausfälle: 0, Fehler: 0, Übersprungen: 0 BUILD ERCCESS <version] unberührt bei 1.6.0. Nicht gedrängt - Aufgabe 9 landet zuerst DDL.