//测试权值正向修改 public async System.Threading.Tasks.Task Test2Async() { //weatherservice var weatherRootToReturn = new WeatherRoot(); weatherRootToReturn.main = new Main(); weatherRootToReturn.main.temp = "29"; weatherRootToReturn.main.humidity = "30"; var weatherServiceMock = new Mock <IWeatherService>(); weatherServiceMock.Setup(w => w.GetWeatherAsync()).ReturnsAsync(weatherRootToReturn); var mockWeatherService = weatherServiceMock.Object; // loadjsonservice List <FoodInformation> fi = new List <FoodInformation>(); for (int i = 1; i <= 40; i++) { FoodInformation food = new FoodInformation(); food.Name = i.ToString(); food.Weight = new List <int>(); for (int j = 0; j < 6; j++) { food.Weight.Add(i); } fi.Add(food); } var loadJsonServiceMock = new Mock <ILoadJsonService>(); loadJsonServiceMock.Setup(w => w.ReadJsonAsync()).ReturnsAsync(fi); var mockLoadJsonServiceMock = loadJsonServiceMock.Object; //userchoiceservice var userChoiceServiceMock = new Mock <IUserChoiceService>(); userChoiceServiceMock.Setup(w => w.ReadJsonAsync()).ReturnsAsync(new List <Log>()); var mockUserChoiceService = userChoiceServiceMock.Object; //userfacorservice var userFavorServiceMock = new Mock <IUserFavorService>(); userFavorServiceMock.Setup(w => w.ReadJsonAsync()).ReturnsAsync(new List <FoodWeightChange>()); var mockUserFavorService = userFavorServiceMock.Object; //log var logServiceMock = new Mock <ILogService>(); logServiceMock.Setup(w => w.GetLogs()).Returns(new List <Log>()); var mockLogSerivce = logServiceMock.Object; var foodFavorSerivce = new Mock <IFoodFavorService>(); var mockFoodFavorService = foodFavorSerivce.Object; IRecommendationService ir = new RecommendationService(mockWeatherService, mockLoadJsonServiceMock, mockUserFavorService, mockLogSerivce, mockFoodFavorService); ir.InitRecommendationAsync(); List <FoodInformation> ff = await ir.ReFlashAsync(); List <int> reason = new List <int>(); for (int i = 0; i <= 5; i++) { reason.Add(1); } ir.ChangeWeight("10", reason, false); var fd = ir.GetFoodInfs(); Assert.AreEqual(fd[9].Weight[1], 14); //List<FoodInformation> ff = await ir.ReFlashAsync(); }