将 NSubstitute 导入 Unity 项目

Importing NSubstitute into Unity project

我正在尝试在我的 Unity 项目(Unity 版本 2019.2.2f1)中使用 NSubstitute。无论如何导入它,我的 IDE,Visual Studio 和 JetBrains Rider,都会在我尝试 using NSubstitute 说 NSubstitute 未定义时给出错误。

我尝试了 NSubstitute 包的许多选项和版本(4.2.1 和 2.0.3)。我还将包的 net35 文件夹中的 dll 文件导入到我的 Unity 项目中的插件文件夹中。我还尝试在 IDE.

中使用 Nuget 安装相同版本的 NSubstitute

2020 年更新

如果您在 2020 年或之后阅读本文,请查看如何使用最新版本的 NSubstitute 进行此操作。

/结束更新

我能够使 2.0.3 版本与 Unity 一起工作。较新的版本有额外的依赖项,我无法在 Unity 中使用这些依赖项,所以现在看来​​我们只能使用 2.0.3。所以这就是我的做法:

  • NuGet Website 下载 2.0.3。
  • 解压缩文件并将 lib/net35/NSubstitute.dll 移动到项目的 Plugins 文件夹中。
  • 在你的测试程序集定义中,不要忘记引用它,否则将找不到它。

当您现在在 Rider 中重新打开项目时,应该可以找到它。有时 Unity 有点不正常,似乎没有找到 DLL。在这种情况下,重新导入项目会有帮助。

我在 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