【问题标题】:System.UnauthorizedAccessException while writing a unit test编写单元测试时出现 System.UnauthorizedAccessException
【发布时间】:2018-05-20 02:09:00
【问题描述】:

您好,我正在构建一个聊天室系统,并被要求使用 Nunit 为其编写单元测试。 “UserData”当前存储在 .bin 文件中。我写了一个注册用户并尝试使用其凭据登录的测试。由于某种原因,测试失败并抛出一个异常,说明对文件的访问被拒绝。

这是我写的测试:

        [Test]
    public void Login_Registered_User_Test() {

        ChatRoom cr = new ChatRoom();
        cr.Start();

        String username = "test123";
        String groupId = "5";


        Assert.AreEqual(true,cr.Register(username, groupId));
        Assert.AreEqual(true,cr.Login(username, groupId));

    }

异常来自这里:

        private void createFile() {

        Stream stream = new FileStream(FolderName, FileMode.Create);
        stream.Close();

    }

消息:System.UnauthorizedAccessException:对路径“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\UserData.bin”的访问被拒绝。

【问题讨论】:

  • 您可能必须指定数据文件的完整(绝对)路径。目前它是相对的,在测试执行期间,它将与测试运行器的位置相关,在这种情况下,它似乎位于您列出的 VS 文件夹中。
  • 文件系统是一个依赖项,应该在单元测试中模拟出来。您不希望单元测试因为依赖项不可用而失败。

标签: c# unit-testing nunit


【解决方案1】:

我认为 Visual Studio 无法访问 Programfiles 文件夹。尝试以管理员模式打开 VS 并运行单元测试。

【讨论】:

  • 哇,谢谢它的工作。不敢相信我还没想过xD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 2019-10-05
  • 2011-06-14
  • 1970-01-01
  • 2012-02-03
相关资源
最近更新 更多