From a8b8a40b52f44a2096eee71b67fd730012e2a3a9 Mon Sep 17 00:00:00 2001 From: Sebastian Hedtrich Date: Thu, 13 Aug 2026 10:34:41 +0200 Subject: [PATCH] Testprojekt LehrerApp.Tests anlegen (13.1.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neues xUnit-Projekt für die Core-Schicht, analog zu LehrerApp.Data.Tests. Noch ohne Testfälle. --- LehrerApp.Tests/LehrerApp.Tests.csproj | 18 +++++ LehrerApp.sln | 107 ++++++++++++++++++++----- TODO.md | 5 +- 3 files changed, 109 insertions(+), 21 deletions(-) create mode 100644 LehrerApp.Tests/LehrerApp.Tests.csproj diff --git a/LehrerApp.Tests/LehrerApp.Tests.csproj b/LehrerApp.Tests/LehrerApp.Tests.csproj new file mode 100644 index 0000000..5b38128 --- /dev/null +++ b/LehrerApp.Tests/LehrerApp.Tests.csproj @@ -0,0 +1,18 @@ + + + net10.0 + false + true + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/LehrerApp.sln b/LehrerApp.sln index 5dc2cd5..15087a2 100644 --- a/LehrerApp.sln +++ b/LehrerApp.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Core", "LehrerApp.Core\LehrerApp.Core.csproj", "{A1000001-0000-0000-0000-000000000001}" EndProject @@ -12,23 +12,92 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Desktop", "Lehrer EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Data.Tests", "LehrerApp.Data.Tests\LehrerApp.Data.Tests.csproj", "{A1000006-0000-0000-0000-000000000006}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Tests", "LehrerApp.Tests\LehrerApp.Tests.csproj", "{4A5AC233-5976-44CD-B5F7-6562B096BA47}" +EndProject Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.Build.0 = Debug|Any CPU - EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x64.Build.0 = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x86.Build.0 = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x64.ActiveCfg = Release|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x64.Build.0 = Release|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x86.ActiveCfg = Release|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x86.Build.0 = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x64.Build.0 = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x86.Build.0 = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x64.ActiveCfg = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x64.Build.0 = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x86.ActiveCfg = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x86.Build.0 = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x64.Build.0 = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x86.Build.0 = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x64.ActiveCfg = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x64.Build.0 = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x86.ActiveCfg = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x86.Build.0 = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x64.Build.0 = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x86.Build.0 = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x64.ActiveCfg = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x64.Build.0 = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x86.ActiveCfg = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x86.Build.0 = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x64.Build.0 = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x86.Build.0 = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x64.ActiveCfg = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x64.Build.0 = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x86.ActiveCfg = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x86.Build.0 = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x64.Build.0 = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x86.Build.0 = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x64.ActiveCfg = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x64.Build.0 = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x86.ActiveCfg = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x86.Build.0 = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x64.ActiveCfg = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x64.Build.0 = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x86.ActiveCfg = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x86.Build.0 = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|Any CPU.Build.0 = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x64.ActiveCfg = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x64.Build.0 = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x86.ActiveCfg = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection EndGlobal diff --git a/TODO.md b/TODO.md index 2c37a16..e1ac189 100644 --- a/TODO.md +++ b/TODO.md @@ -449,8 +449,9 @@ Fächer- und Kompetenzverwaltung existiert bereits in ## 13. Technische Basis ### 13.1 Tests -- [ ] **13.1.1** Testprojekt `LehrerApp.Tests` anlegen (xunit-Pakete sind in - [Directory.Packages.props](Directory.Packages.props) bereits gepflegt, Projekt fehlt). +- [x] **13.1.1** Testprojekt `LehrerApp.Tests` angelegt (referenziert `LehrerApp.Core`, analog zu + [LehrerApp.Data.Tests](LehrerApp.Data.Tests/LehrerApp.Data.Tests.csproj) für die Datenschicht). + Noch ohne Testfälle — folgt mit 13.1.2ff. - [ ] **13.1.2** Unit-Tests für `GradingService` (Notenschlüssel-Grenzfälle, gewichteter Schnitt). - [ ] **13.1.3** Unit-Tests für `SchoolYearService` (Jahreswechsel, Halbjahresgrenze). - [ ] **13.1.4** Repository-Tests gegen eine In-Memory-LiteDB.