Пожалуйста, обратите внимание на код, как показано ниже. Вызывая GetBrands, свойство Brands будет присвоено надлежащими данными.Как проверить метод async void
public class BrandsViewModel : ViewModelBase
{
private IEnumerable<Brand> _brands;
public IEnumerable<Brand> Brands
{
get { return _brands; }
set { SetProperty(ref _brands, value); }
}
public async void GetBrands()
{
// ......
Brands = await _dataHelper.GetFavoriteBrands();
// ......
}
}
Но если я проверил его, как показано ниже, тест не удался. Как подождать асинхронный вызов внутри метода GetBrands?
[TestMethod]
public void AllBrandsTest()
{
BrandsViewModel viewModel = new BrandsViewModel();
viewModel.GetBrands();
Assert.IsTrue(viewModel.Brands.Any());
}
Пожалуйста, прочтите/смотреть это: http://blogs.msdn.com/b/ lucian/archive/2013/02/18/talk-the-new-async-design-patternss.aspx В основном он говорит: Не используйте 'async void', кроме обработчиков событий. –
@ DanielHilgarth Спасибо, Даниэль. Я реорганизовал свой код, и он просто работает как шарм. – Shinbo