以下是測試代碼。單元測試異步方法導致錯誤
[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次嘗試,但我們不知道每種情況下結果是否相同...... –