我使用NSubstitute v1.7.1.0和AutoFixture.AutoNSubstitute v3.16.5。显然,AutoFixture是针对旧版本的NSubsitute编译的。
在测试中,我得到了例外:
System.IO.FileNotFoundException : Could not load file or assembly 'NSubstitute,
Version=1.4.3.0, Culture=neutral, PublicKeyToken=92dd2e9066daa5ca' or one of its
dependencies. The system cannot find the file specified.
所以我添加了一个绑定重定向到我的测试项目(如建议here):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NSubstitute" publicKeyToken="92dd2e9066daa5ca" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.7.1.0" newVersion="1.7.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
仍然有例外。我做错了什么?
编辑:
当我使用AutoFixture创建类的实例而不是接口(myFixture.Create<MyClass>()
而不是myFixture.Create<MyInterface>()
)时,问题就消失了。