【发布时间】: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