【问题标题】:Importing NSubstitute into Unity project将 NSubstitute 导入 Unity 项目
【发布时间】:2020-01-07 03:23:03
【问题描述】:

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

我尝试了许多 NSubstitute 软件包的选项和版本(4.2.1 和 2.0.3)。我还将包的 net35 文件夹中的 dll 文件导入到我的 Unity 项目中的 Plugins 文件夹中。我还尝试在 IDE 中使用 Nuget 安装相同版本的 NSubstitute。

【问题讨论】:

    标签: c# unit-testing unity3d nsubstitute


    【解决方案1】:

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

    【讨论】:

    • 为我工作!谢谢!这应该是答案!为什么要使用旧版本
    • 在 2018 年,较新的版本不起作用。但既然这行得通,你绝对应该使用新版本。赞成这个,并在我对这个的回答中添加了一些参考。
    【解决方案2】:

    2020 年更新

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

    /结束更新

    我能够使 2.0.3 版本与 Unity 一起工作。较新的版本有额外的依赖项,我无法在 Unity 中使用,所以现在我们似乎被 2.0.3 困住了。所以我是这样做的:

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

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

    【讨论】:

    • 请注意,使用复选框“覆盖引用”来显示该列表。
    猜你喜欢
    • 2018-06-20
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多