iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
1
Modern Web

零經驗ASP .NET Core 30 DAY全紀錄系列 第 12

零經驗 .NET Core 30 DAY----- Day12 NUnit進行C#單元測試

  • 分享至 

  • xImage
  •  

下班後要出去玩,睡前趕進度/images/emoticon/emoticon06.gif
.NET 有幾套主流的 test framework:xUnit、NUnit 和 MSTest,今天我選擇簡單介紹一下NUnit。

簡介:
NUnit是.Net單元測試框架,由C#語言來編寫,最重要的一點是它適合於所有.NET語言。
.NET Core中至少.NET Core 2.1 SDK 或更新版本。

實作

建立要被測試的來源專案

好的首先我們要來建立方案
指令dotnet new sln
執行完成會看到測試專案下有測試解決方案檔案
https://ithelp.ithome.com.tw/upload/images/20200918/20130030P9zuRWjY7L.png
在整個目錄底下建立要被測試的檔案來源目錄ithelp/
https://ithelp.ithome.com.tw/upload/images/20200918/20130030MyKpGzoEzg.png
切換至ithelp底下
指令dotnet new classlib
https://ithelp.ithome.com.tw/upload/images/20200918/20130030w2sL1s66tO.png

將 Class1.cs 重新命名為 ithelp.cs。
將內容修改如下

using System;

namespace ithelp
{
    public class Class1
    {
        public bool IsPrime(int candidate)
        {
            throw new NotImplementedException("Please create a test first.");
        }

    }
//throw new NotImplementedException(可自動拋出異常訊息)

將目錄變更回ithelp12目錄。
執行dotnet sln add ithelp/ithelp.csproj將類別庫專案新增至方案
https://ithelp.ithome.com.tw/upload/images/20200918/20130030EMejKZSik7.png


建立拿來測試的測試專案

建立ithelp.test 目錄(命名方法通常都是來源專案加上.test)
https://ithelp.ithome.com.tw/upload/images/20200918/20130030Pm8H2qi0o5.png
到 ithelp.test目錄底下
執行命令dotnet new nunit
會建用NUnit 做為測試程式庫的測試專案。
可在 ithelp.Tests.csproj 檔案中設定測試執行器。
https://ithelp.ithome.com.tw/upload/images/20200918/20130030hj45hHfTLk.png
點選開啟ithelp.Tests.csproj
https://ithelp.ithome.com.tw/upload/images/20200918/20130030rdTTQSyV9w.png

需要其他套件來建立和執行單元測試,上一個步驟中的 dotnet new,新增Microsoft.NET.Test.Sdk、nunit以及NUnit3TestAdapter。
接下來要將 first的相依性加進去。
使用dotnet add reference指令。
指令dotnet add reference ../ithelp/ ithelp.csproj

維原始測試,執行dotnet test會顯示測試成功
https://ithelp.ithome.com.tw/upload/images/20200918/20130030UU6L7ALMWI.png

參考網址:https://docs.microsoft.com/zh-tw/dotnet/core/testing/unit-testing-with-nunit

基本上我就是照做,然後加上我的碎碎解釋

DAY12心得:
今天好累,一直很想試試單元測試,第一次學覺得有點難懂,明天會試試看(建立錯誤的來源程式,經過測試,然後改成正確的,再測試)


上一篇
零經驗 .NET Core 30 DAY----- Day11 LINQ (JOIN、OrderBy、ThenBy)
下一篇
零經驗 .NET Core 30 DAY----- Day13 NUnit進行C#單元測試(二)
系列文
零經驗ASP .NET Core 30 DAY全紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言