在moq单元测试中使用以下行时,我得到一个System.BadImageFormatException。
mockDataAccessLayer.Setup(dal => dal.ListItems(It.IsAny<List<IFilter>>()));
例外:
System.BadImageFormatException : [C:\Users\ric\AppData\Local\Temp\q3a2acu1.brz\RJ.DAL.test\assembly\dl3\cb8fb82f\e33b012a_c5f6cc01\RJ.DAL.test.DLL] The signature is incorrect.
at RJ.DAL.test.DALLayerTest.DataAccessLayerTest()
完整单元测试:
[Test]
public void DataAccessLayerTest()
{
var mockDataAccessLayer = new Mock<IDAL>();
mockDataAccessLayer.Setup(dal => dal.ListItems(It.IsAny<List<IFilter>>()));
var dataAccessLayer = mockDataAccessLayer.Object;
}
我很确定问题在于IFilter列表,因为我在其他地方使用非常相似的代码而没有It.IsAny工作正常。有什么想法吗?
答案 0 :(得分:8)
正如Hans所说,这是由于错过了接口的程序集。添加包含接口的dll可以解决问题。