TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
我是 MSTest 的新手,在 运行 进行以下测试时出现以下错误。不过,我无法从例外中获益良多。
请求您的帮助!我也在下面附上测试方法代码。
[TestMethod]
public async Task GetReturnsAllSolutionsForAdminUser()
{
var storageService = new Mock<IStorageService>();
AuthenticatedUsername = "xxx@yyy.com";
var mockStorage = new Mock<IStorageService>();
var mockGeneralServices = new Mock<IGeneralServices>();
var mockDesignerEngine = new Mock<IDesignerEngine>();
var mockExcelUploadService = new Mock<ISolutionBuilderFromExcelService>();
var solutions = new List<Solution>(
new[]
{
new Solution
{
Id = "10000000-0000-0000-0000-000000000000",
Name = "Solution 1",
Description = "Description Of Solution 1",
ResourceGroups = new NamedItemList<ResourceGroup>(new[] {new ResourceGroup{Name="Solution 1:ResourceGroup 1"}}),
CreatedBy = "xxx@yyy.com",
CreatedOn = DateTime.Parse("05/05/2018"),
Version = "1.0.1",
TaggingEnabled = true,
}
}
);
storageService.Setup(it => it.ReadItemsAsync<Solution>()).ReturnsAsync(solutions);
var controller = new SolutionsController(mockGeneralServices.Object, mockStorage.Object, mockDesignerEngine.Object, mockExcelUploadService.Object)
{
ControllerContext = new ControllerContext
{
HttpContext = GetMockHttpContext(CloudSuiteRoles.AdminRole, CloudSuiteRoles.UserRole).Object
}
};
var result = await controller.Get().ConfigureAwait(false) as JsonResult;
var items = result.Value as IEnumerable<dynamic>;//
Assert.IsNotNull(items);
Assert.AreEqual(solutions.Count(), items.Count());
}
看不到 storageService
在测试中的使用位置以及它与测试对象的关系。
您很可能是想 Setup
mockStorage
替换
storageService.Setup(it => it.ReadItemsAsync<Solution>()).ReturnsAsync(solutions);
与
mockStorage.Setup(_ => _.ReadItemsAsync<Solution>()).ReturnsAsync(solutions);
因为那是被注入到正在测试的控制器中的那个。
错误是因为被调用的asyc方法没有被mock过,方法无法完成。
我是 MSTest 的新手,在 运行 进行以下测试时出现以下错误。不过,我无法从例外中获益良多。
请求您的帮助!我也在下面附上测试方法代码。
[TestMethod]
public async Task GetReturnsAllSolutionsForAdminUser()
{
var storageService = new Mock<IStorageService>();
AuthenticatedUsername = "xxx@yyy.com";
var mockStorage = new Mock<IStorageService>();
var mockGeneralServices = new Mock<IGeneralServices>();
var mockDesignerEngine = new Mock<IDesignerEngine>();
var mockExcelUploadService = new Mock<ISolutionBuilderFromExcelService>();
var solutions = new List<Solution>(
new[]
{
new Solution
{
Id = "10000000-0000-0000-0000-000000000000",
Name = "Solution 1",
Description = "Description Of Solution 1",
ResourceGroups = new NamedItemList<ResourceGroup>(new[] {new ResourceGroup{Name="Solution 1:ResourceGroup 1"}}),
CreatedBy = "xxx@yyy.com",
CreatedOn = DateTime.Parse("05/05/2018"),
Version = "1.0.1",
TaggingEnabled = true,
}
}
);
storageService.Setup(it => it.ReadItemsAsync<Solution>()).ReturnsAsync(solutions);
var controller = new SolutionsController(mockGeneralServices.Object, mockStorage.Object, mockDesignerEngine.Object, mockExcelUploadService.Object)
{
ControllerContext = new ControllerContext
{
HttpContext = GetMockHttpContext(CloudSuiteRoles.AdminRole, CloudSuiteRoles.UserRole).Object
}
};
var result = await controller.Get().ConfigureAwait(false) as JsonResult;
var items = result.Value as IEnumerable<dynamic>;//
Assert.IsNotNull(items);
Assert.AreEqual(solutions.Count(), items.Count());
}
看不到 storageService
在测试中的使用位置以及它与测试对象的关系。
您很可能是想 Setup
mockStorage
替换
storageService.Setup(it => it.ReadItemsAsync<Solution>()).ReturnsAsync(solutions);
与
mockStorage.Setup(_ => _.ReadItemsAsync<Solution>()).ReturnsAsync(solutions);
因为那是被注入到正在测试的控制器中的那个。
错误是因为被调用的asyc方法没有被mock过,方法无法完成。