我存在在我實現的具體類的NuGet包一個抽象基類,像這樣的代理對象時:FileNotFoundException異常創建使用起訂量和城堡
public class MyConcreteClass : MyBaseAbstractClass<SomeType> {
public MyConcreteClass(IAnInterfaceOne interfaceOne, IAnInterfaceTwo interfaceTwo) : base(interfaceOne, interfaceTwo) { }
}
我嘲笑兩個參數如下所示:
var mockFirst = new Mock<IAnInterfaceOne>();
var mockSecond = new Mock<IAnInterfaceTwo>();
和具體類,如下所示:
var mockConcrete = new Mock<MyConcreteClass>(mockFirst.Object, mockSecond.Object);
當我儘量在mockConcrete
var concreteObjectInstance = mockConcrete.Object
我得到一個FileNotFoundException
,Could not load file or assembly 'Serilog.dll'
和VS點到基構造函數調用的調試器在異常從哪裏來訪問Object
屬性:
base(interfaceOne, interfaceTwo)
Castle.Core
和Moq
版本:
<package id="Castle.Core" version="3.3.3" targetFramework="net452" />
<package id="Moq" version="4.5.21" targetFramework="net452" />
我已經通過nuget包搜索了基類所在的位置,並且沒有引用或serilog的用法。我認爲它是一個日誌記錄庫,我searched Castle.Core
's repo and found many usages of serilog。所以我對這個異常是如何發生的以及如何解決這個異常有點困惑,所以當我嘲笑我的對象時它不會拋出異常。
您的具體類是被測系統還是您將它用作實際被測系統的依賴關係? – Nkosi
具體類是我想嘲笑返回值的依賴項。我正在測試的是使用它,但是它只是一個依賴項。 – httpNick
如果您手動創建具體課程並通過兩個模擬,它也會失敗嗎?既然它已經具體,我沒有看到你想嘲笑它,因爲它已經使用它的依賴關係的模仿'var mockConcrete = new MyConcreteClass(mockFirst.Object,mockSecond.Object);' – Nkosi