NSubstitute - Func , Action
範例程式碼放在 GitHub
前言
當紀錄一下 遇到Func Action 要如驗證
程式碼
public class A12_Func
{
public class MyDemo
{
public void DoC(Func<string, bool> func, Action<int> action)
{
if (func("test"))
{
action(1);
}
}
}
[TestMethod]
public void NSubstituteNote27()
{
//arrange
var func = Substitute.For<Func<string, bool>>();
func.Invoke(Arg.Any<string>()).Returns(true);
var action = Substitute.For<Action<int>>();
var sut = new MyDemo();
//act
sut.DoC(func, action);
//assert
action.ReceivedWithAnyArgs().Invoke(Arg.Any<int>());
}
[TestMethod]
public void NSubstituteNote28()
{
//arrange
var func = Substitute.For<Func<string, bool>>();
func.Invoke(Arg.Any<string>()).Returns(false);
var action = Substitute.For<Action<int>>();
var sut = new MyDemo();
//act
sut.DoC(func, action);
//assert
action.DidNotReceiveWithAnyArgs().Invoke(Arg.Any<int>());
}
}
其實都差不多 只是func在執行的時候平時都習慣不打 Invoke , 就是把 Invoke 加上就好懂了
結語
func也可以寫測試喔
如果內容有誤請多鞭策謝謝