簡體   English   中英

如何設置返回DbParameter的方法?

[英]How do I setup a method to return a DbParameter?

我有一個接口,嘗試將其模擬為單元測試。 它有一個方法可以接受兩個參數,名稱和值,並返回要從這些參數構建的DbParameter

public interface IDbUnitOfWork {
   DbParameter BuildParameter(string name, object value);
}

我試圖建立一個測試案例,可以模擬返回的DbParameter,但遇到了麻煩。

   unitOfWorkMock = new Mock<IDbUnitOfWork>();
   unitOfWorkFactoryMock = new Mock<IUnitOfWorkFactory>();
   unitOfWorkFactoryMock.Setup(u => u.LoadUnitOfWork()).Returns(new Mock<IDbUnitOfWork>().Object);
   unitOfWorkMock
            .Setup(u => u.BuildParameter(It.IsAny<string>(), It.IsAny<object>()))
            .Returns((name, value) => ASDASDASDASD);

如何返回填充有傳入參數的DbParameter或模擬的DbParameter?


解決方法(感謝Patrick)

 unitOfWorkMock
    .Setup(u => u.BuildParameter(It.IsAny<string>(), It.IsAny<object>()))
    .Returns((string name, object value) => Mock.Of<DbParameter>(p=> p.ParameterName == name && p.Value == value));

由於DbParameter是抽象的 ,因此可以被嘲笑,我相信這應該可以解決問題:

unitOfWorkMock
    .Setup(u => u.BuildParameter(It.IsAny<string>(), It.IsAny<object>()))
    .Returns((name, value) => 
        Mock.Of<DbParameter>(x => x.ParameterName == name && x.Value == value)
    );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM