A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Következő változat | Előző változat | ||
oktatas:programozas:csharp:dotnetcore:nunit_4 [2023/12/31 23:34] admin létrehozva |
oktatas:programozas:csharp:dotnetcore:nunit_4 [2024/02/18 21:30] (aktuális) admin [.Net Core NUnit 4] |
||
---|---|---|---|
Sor 5: | Sor 5: | ||
* **Szerző:** Sallai András | * **Szerző:** Sallai András | ||
* Copyright (c) 2023, Sallai András | * Copyright (c) 2023, Sallai András | ||
+ | * Szerkesztve: 2024 | ||
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] | * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] | ||
* Web: https://szit.hu | * Web: https://szit.hu | ||
===== Szükséges ===== | ===== Szükséges ===== | ||
+ | |||
+ | |||
+ | Függőségek telepítése: | ||
+ | |||
+ | dotnet add package nunit | ||
+ | dotnet add package nunit3testadapter | ||
+ | dotnet add package microsoft.net.test.sdk | ||
+ | |||
+ | ===== Projekt fájl ===== | ||
+ | |||
+ | Vegyük fel a .csproj fájlban a <PropertyGroup> részbe: | ||
+ | <code> | ||
+ | <GenerateProgramFile>false</GenerateProgramFile> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | <code xml app01.csproj> | ||
+ | <Project Sdk="Microsoft.NET.Sdk"> | ||
+ | |||
+ | <PropertyGroup> | ||
+ | <OutputType>Exe</OutputType> | ||
+ | <TargetFramework>net7.0</TargetFramework> | ||
+ | <ImplicitUsings>enable</ImplicitUsings> | ||
+ | <Nullable>enable</Nullable> | ||
+ | <GenerateProgramFile>false</GenerateProgramFile> | ||
+ | </PropertyGroup> | ||
+ | |||
+ | <ItemGroup> | ||
+ | <PackageReference Include="microsoft.net.test.sdk" Version="17.8.0" /> | ||
+ | <PackageReference Include="nunit" Version="4.0.1" /> | ||
+ | <PackageReference Include="nunit3testadapter" Version="4.5.0" /> | ||
+ | </ItemGroup> | ||
+ | |||
+ | |||
+ | </Project> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Üres főprogram ===== | ||
+ | |||
+ | |||
+ | <code csharp Program.cs> | ||
+ | namespace app02; | ||
+ | |||
+ | public class Program | ||
+ | { | ||
+ | static void Main(string[] args) | ||
+ | { | ||
+ | Console.WriteLine("Háromszög"); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ===== Tesztelendő kód ===== | ||
+ | |||
+ | <code csharp Triangle.cs> | ||
+ | namespace app01; | ||
+ | |||
+ | class Triangle { | ||
+ | public double CalcArea(double tbase, double theight) { | ||
+ | |||
+ | if (this == null) | ||
+ | { | ||
+ | throw new InvalidOperationException("Triangle instance is null."); | ||
+ | } | ||
+ | |||
+ | return tbase * theight / 2; | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ===== Teszt ===== | ||
+ | |||
+ | |||
+ | <code csharp TriangleTest.cs> | ||
+ | namespace app01; | ||
+ | |||
+ | using NUnit.Framework; | ||
+ | using NUnit.Framework.Legacy; | ||
+ | |||
+ | [TestFixture] | ||
+ | class TriangleTest { | ||
+ | private Triangle? triangle; | ||
+ | |||
+ | [SetUp] | ||
+ | public void SetUp() { | ||
+ | triangle = new Triangle(); | ||
+ | } | ||
+ | |||
+ | [Test] | ||
+ | public void CalcTriangleTest() { | ||
+ | if (triangle == null) { | ||
+ | throw new InvalidOperationException("Triangle instance is null."); | ||
+ | } | ||
+ | double actual = triangle.CalcArea(30, 35); | ||
+ | double expected = 525.0; | ||
+ | ClassicAssert.AreEqual(actual, expected); | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | A teszt futtatása: | ||
+ | |||
+ | dotnet test | ||
+ | |||
+ | |||
+ | ===== Újabban ===== | ||
+ | |||
+ | <code csharp> | ||
+ | //E helyett: ClassicAssert.AreEqual(actual, expected); | ||
+ | Assert.That(actual, Is.EqualTo(expected)); | ||
+ | </code> | ||
+ | |||