NSubstitute 的用途和HelloNSubstitute第一個範例
範例程式碼放在 GitHub
前言
這是說明書系列是紀錄NSubstitute套件的使用筆記
會把常用的用法整理一下,也可以當作入門教學
NSubstitute介紹
寫單元測試時,會需要隔離外部服務
專注在當前程式碼的3A測試(Arrange, Act, Assert)
NSubstitute就是拿來做 Mock, stub, fake 之類的事情
也就是拿來產生 假的實體(instance)
可以自訂假的實體的方法,屬性 要回傳的內容
Hello NSubstitute
首先要先建立一個單元測試的專案
就直接看程式碼
[TestClass]
public class A00_HelloNSubstitute
{
public interface ICalculator
{
int Add(int a, int b);
}
[TestMethod]
public void HelloNSubstitute()
{
//arrange
//NSubstitute會產生一個ICalculator 假的實體出來
ICalculator calculator = Substitute.For<ICalculator>();
//設定假的實體的Add方法當傳入3,6 回傳 9
calculator.Add(3,6).Returns(9);
var expected = 9;
//act
var actual = calculator.Add(3,6);
//assert
Assert.AreEqual(expected, actual);
}
}
程式碼有一個介面ICalculator
我可以用Substitute.For<ICalculator>();
產生一個 假的ICalculator實體
calculator.Add(3,6).Returns(9);
就是設定add方法 當傳入的參數是3,6時 回傳9
這就是隔離,我不管add方法寫對還是錯,我可以設定我期待的回傳值
最後實際去執行add然後驗證是否如預期是9
NSubstitute 就是隔離外部程式的神兵利器
結語
接下來會介紹NSub最常用的功能
設定 傳入參數 與 傳出值 的更多細節
推薦閱讀
如果內容有誤請多鞭策謝謝