将NSubstitute引入Unity项目

5
我正在尝试在我的Unity项目中使用NSubstitute(Unity版本为2019.2.2f1)。无论如何导入它,我的IDE(Visual Studio和JetBrains Rider)都会在我尝试using NSubstitute时给出错误,说NSubstitute未定义。
我尝试了许多选项和NSubstitute包的版本(4.2.1和2.0.3)。我还将包中net35文件夹中的dll文件导入到我的Unity项目中的Plugins文件夹中。我还尝试在IDE中使用Nuget安装相同版本的NSubstitute。
2个回答

7

我在Unity项目中添加了NSubstitute 4.2.1 (.NET Standard 2.0),但是我需要包含3个更多的依赖项才能使其正常工作:

  1. system.threading.tasks.extensions.4.5.3
  2. system.runtime.compilerservices.unsafe.4.6.0
  3. castle.core.4.4.0

对我有用!谢谢!这应该是答案!为什么要使用旧版本? - Chakalaka
在2018年,较新的版本无法正常工作。但是既然这个版本可以工作,你应该选择新版本。我已经点赞并在我的回答中添加了一些参考资料。 - Jan Thomä

2

2020年更新:

如果您在2020年或之后阅读此文章,请参考Rodrigo Eleuterio的答案,了解如何将最新版本的NSubstitute与Unity一起使用。

/更新完毕

我成功地让2.0.3版本与Unity配合使用。新版本有额外的依赖项,我无法在Unity中使用它们,所以我们暂时只能使用2.0.3版本。以下是我是如何做到的:

  • NuGet网站下载2.0.3版本。
  • 解压文件并将lib/net35/NSubstitute.dll移动到项目的Plugins文件夹中。
  • 在测试程序集定义中引用它,否则无法找到它。

enter image description here

当您重新在Rider中打开项目时,应该可以找到它。有时Unity会出现一些问题,似乎找不到DLL。在这种情况下,重新导入项目可能有所帮助。


只是一个提示,使用复选框“覆盖引用”来显示该列表。 - Darkgaze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接