我已經開始使用UnityAutoMoqContainer Here is the Link 並且我特別在container.GetMock()調用周圍有2個以下的問題。通過UnityAutoMoqContainer解決依賴關係
我期待下面的斷言取得成功,但它會引發異常。
private UnityAutoMoqContainer container; [SetUp] public void SetUp() { container = new UnityAutoMoqContainer(); } [Test] public void Are_mocks_Same(){ var serviceMock = new Mock<IService>(); var getMock = container.GetMock<IService>(); Assert.AreSame(getMock, serviceMock); }
錯誤1個測試 'UnityAutoMoq.Tests.UnityAutoMoqContainerFixture.Are_mocks_Same' 失敗:預期:同在 UnityAutoMoq.Tests.UnityAutoMoqContainerFixture.Are_mocks_Same()在 C:\用戶... ...。
那麼爲什麼當「預期」和「但是」是相同的,它仍然會引發異常?
我看到不同的是,GetMock使用統一解決I,E 解決()依賴性,其中新的模擬沒有。但我無法解釋我自己造成這種例外的原因。
解決抽象類型:
我用Moq.Mock到如下解決抽象類型。
var httpContextBaseMock = new Mock<HttpContextBase>();
但是下面的調用UnityAutoMoqContainer拋出該異常:
var mock = container.GetMock<HttpContextBase>();
依賴解析失敗,類型= 「System.Web.HttpContextBase」,名字=「 (沒有)」。同時發生異常 :解決。異常是:InvalidOperationException - 無法構造類型爲HttpContextBase的 。您必須配置 容器才能提供此值。
問題是爲什麼容器不便於返回一個模擬抽象類型?