我正在使用Moq作为单元测试的模拟库。
似乎很难找到Castle Windsor图书馆,因为它给了我这个错误:
System.TypeInitializationException : Une exception a été levée par l'initialiseur de type pour 'Moq.Mock`1'.
----> System.TypeInitializationException : Une exception a été levée par l'initialiseur de type pour 'Moq.Proxy.CastleProxyFactory'.
----> System.IO.FileNotFoundException : Impossible de charger le fichier ou l'assembly 'Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' ou une de ses dépendances. Le fichier spécifié est introuvable.
à Moq.Mock`1.<InitializeInstance>b__24_0()
à Moq.PexProtector.Invoke(Action action)
à Moq.Mock`1.InitializeInstance()
à Moq.Mock`1.OnGetObject()
à Moq.Mock.GetObject()
à Moq.Mock.get_Object()
à Moq.Mock`1.get_Object()
à TecLib.Common.Tests.Infrastructure.CqrsRepositoryBaseTest.SetUp() dans C:\Users\Ludovic\Documents\Visual Studio 2015\Projects\TEC2\TecLib.Common.Tests\Infrastructure\CqrsRepositoryBaseTest.cs:ligne 38
--TypeInitializationException
à Moq.Proxy.CastleProxyFactory..ctor()
à Moq.Mock`1..cctor()
--FileNotFoundException
à Moq.Proxy.CastleProxyFactory..cctor()
这是触发错误的测试之一。代码工作得非常好。这是Moq图书馆引发的错误,因为它似乎无法找到Castle Windsor图书馆。
[SetUp]
public void SetUp()
{
_eventStore = new Mock<IEventStore>();
_eventDispatcher = new Mock<IEventDispatcher>();
_entityFactory = new Mock<IEntityFactory>();
_repository = new CqrsAddressRepository(_entityFactory.Object, _eventStore.Object, _eventDispatcher.Object);
_addressInfo1 = new AddressInfo("400 chemin Jette", "", "", "Farnham", "J0J2B0", "Quebec", "Canada");
_addressInfo2 = new AddressInfo("322 rue Principale E", "", "", "Farnham", "J2N1L7", "Quebec", "Canada");
}
这些是我项目的包
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Castle.Core" version="3.3.3" targetFramework="net461" />
<package id="Castle.Windsor" version="3.3.0" targetFramework="net461" />
<package id="Moq" version="4.5.21" targetFramework="net461" />
<package id="NUnit" version="3.4.1" targetFramework="net461" />
</packages>
这些测试之前完美无缺。我不知道发生了什么变化让他们现在抛出这个错误。
可能安装了4.6.1 .net Framework?
请帮忙!
答案 0 :(得分:7)
您的错误消息显示:
System.IO.FileNotFoundException:不可能充电器le fichier ou l'assembly'Castle.Core,Version = 3.3.0.0 ,Culture = neutral, PublicKeyToken = 407dd0808d44fbdc'ou une desesdépendances。 Le fichier spécifiéestintrouvable。
但是您的包具有以下配置:
<package id="Castle.Core" version="3.3.3" targetFramework="net461" />
答案 1 :(得分:-1)
答案 2 :(得分:-2)
我遇到了一个与你非常相似的问题,唯一的区别是我已经构建了一个自定义库来在我的解决方案中生成几个虚假的商业模拟,以便在另一个测试中重用它。
我不知道如何在我的一个单元测试项目中将旧版本的Moq的dll作为参考出现。
这就解决了我的问题: