C# 單元測試的文章,十分推薦 學習單元測試 - 程式隨筆 。但因為發佈於 2017 年,已經有 API 結束營運的問題;如果要使用較新版本的 .Net 練習,也有些微要調整的地方。請參考下方!
文中介紹的 PTX (公共運輸整合資訊流通服務平台) 已經結束服務,可以從此文章列出的 API 中,挑選出合適的 API 來練習:第三方 API 整理. Public API 列表 - by 彼得潘的 iOS App Neverland
以下是我有測試過的 API,可分為
InternalVisbleTo
屬性如果使用較新的 .Net SDK 專案檔案時,已經無法在原本的 AssemblyInfo.cs
加入 InternalVisbleTo
屬性。有什麼其它方式,使被封裝的內部方法可被測試專案呼叫呢?
解決方法之一是在 csproj 專案檔內使用 InternalsVisibleToAttribute
屬性,並在參數加入要開放的專案名稱,範例如下 (參考 .NET Project SDKs 設定 InternalsVisibleTo - 余小章 @ 大內殿堂 - 點部落 ):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
<_Parameter1>Practice.Tests</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
</Project>