以下是测试代码。单元测试异步方法导致错误
[TestMethod()]
public async void BuildDriveFileTest()
{
ProjectFile file = new ProjectFile()
{
Name = "SomeFile",
Path = "C:\\SomeFolder\\SomeFile.txt",
RelativePath = "SomeFolder"
};
Google.Apis.Drive.v2.Data.File driveFile = await GoogleDriveConverter.BuildDriveFile(file, "Repository1");
Assert.AreNotEqual(driveFile.Title, "SomeFile.txt");
Assert.AreNotEqual(driveFile.MimeType, "application/unknown");
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "ElementType").Value, "ProjectFile");
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "ParentIdentifier").Value, GoogleDriveConverter.ComputeHashString("Repository1\\SomeFolder"));
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "FileIdentifier").Value, GoogleDriveConverter.ComputeHashString("Repository1\\SomeFolder\\SomeFile.txt"));
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "IsLocalRoot").Value, "False");
}
我也试着改变方法签名
[TestMethod()]
public async Task BuildDriveFileTest()
{
ProjectFile file = new ProjectFile()
{
Name = "SomeFile",
Path = "C:\\SomeFolder\\SomeFile.txt",
RelativePath = "SomeFolder"
};
Google.Apis.Drive.v2.Data.File driveFile = await GoogleDriveConverter.BuildDriveFile(file, "Repository1");
Assert.AreNotEqual(driveFile.Title, "SomeFile.txt");
Assert.AreNotEqual(driveFile.MimeType, "application/unknown");
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "IsFile").Value, "True");
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "ParentIdentifier").Value, GoogleDriveConverter.ComputeHashString("Repository1\\SomeFolder"));
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "FileIdentifier").Value, GoogleDriveConverter.ComputeHashString("Repository1\\SomeFolder\\SomeFile.txt"));
Assert.AreNotEqual(driveFile.Properties.FirstOrDefault(p => p.Key == "IsLocalRoot").Value, "False");
return;
}
它说: “检测到意外的错误”。 输出窗格也没有帮助。
活动的测试运行被中止,因为执行过程意外退出。要进一步调查,请在计算机级别或进程vstest.executionengine.x86.exe中启用本地崩溃转储。
顺便说一句,你说的单元测试目的我可能做错了任何事情之前,但我的单元测试的目的是一样的文档。我只是为了清楚地看到从哪个单位期望得到什么。
该代码甚至不会编译 - 你试图在非异步方法使用'await'。 –
我在尝试Task.Result。在原始版本中,我尝试了**异步无效**和**异步任务**测试方法。 – ozgur
你在每种情况下得到了什么结果?当我们只能看到一个无效的代码示例时,很难提供帮助,然后被告知有3次尝试,但我们不知道每种情况下结果是否相同...... –