1
我有一個工廠類返回一個代表像下面(GetDelegate法)如何測試使用起訂量和NUnit
public interface IFactory
{
Func<int, string> GetDelegate(bool isValid);
}
public class AFactory : IFactory
{
private readonly IService1 _service1;
private readonly IService2 _service2;
public AFactory(IService1 service1, IService2 service2)
{
_service1 = service1;
_service2= service2;
}
public Func<int, string> GetDelegate(bool isValid)
{
if (isValid)
return _service1.A;
return _service2.B;
}
}
public interface IService1
{
string A(int id);
}
public interface IService2
{
string B(int id);
}
我一直在嘗試寫GetDelegate單元測試,但不知道如何斷言委託具體Func鍵返回根據的isValid
我的單元測試的嘗試是像下面(這我不開心)
[Test]
public void ShouldReturnCorrectMethod()
{
private var _sut = new AFactory(new Mock<IService1>(), new Mock<IService2>());
var delegateObj = _sut.GetDelegate(true);
Assert.AreEqual(typeof(string), delegateObj.Method.ReturnType);
Assert.AreEqual(1, delegateObj.Method.GetParameters().Count());
}
任何幫助是非常讚賞
感謝
謝謝。是的,這應該有所幫助。出於好奇,這是工廠模式的「正確」使用嗎?我真的不是真的返回一個類實例本身? –
@nesh_s:那麼你正在返回一個值...它不需要只是一個類。這有點不尋常,但並不特別令人擔憂。 –