【发布时间】:2012-11-22 15:17:21
【问题描述】:
我正在尝试将测试层带入我的项目,但我没有到达那里:(希望有人可以帮助我。
Controller(基于 Automapper 映射和依赖注入容器):
public virtual ActionResult SearchCategories(string keywords)
{
var result = _categoryService.SearchCategories(keywords);
var resultViewModel = Mapper.
Map<IList<SearchCategoriesDto>,
IList<SearchCategoriesViewModel>>(result);
return View(resultViewModel);
}
服务层:
public IList<SearchCategoriesDto> SearchCategories(String keywords)
{
// Find the keywords in the Keywords table
var keywordQuery = _keywordRepository.Query;
foreach (string keyword in splitKeywords)
{
keywordQuery = keywordQuery.Where(p => p.Name == keyword);
}
// Get the Categories from the Search
var keywordAdCategoryQuery = _keywordAdCategoryRepository.Query;
var categoryQuery = _categoryRepository.Query;
var query = from k in keywordQuery
join kac in keywordAdCategoryQuery on k.Id equals kac.Keyword_Id
join c in categoryQuery on kac.Category_Id equals c.Id
select new SearchCategoriesDto
{
Id = c.Id,
Name = c.Name,
SearchCount = keywordAdCategoryQuery
.Where(s => s.Category_Id == c.Id)
.GroupBy(p => p.Ad_Id).Count(),
ListController = c.ListController,
ListAction = c.ListAction
};
var searchResults = query.Distinct().ToList();
return searchResults;
}
测试完成但不工作:
[TestMethod]
public void Home_SearchCategories_Test()
{
// Setup
var catetoryService = new CategoryService(
_categoryRepository,
_keywordRepository,
_keywordAdCategoryRepository);
// Act
var result = catetoryService.SearchCategories("audi");
// Add verifications here
Assert.IsTrue(result.Count > 0);
}
谢谢。
【问题讨论】:
-
您是遇到错误还是测试失败了?
-
另外,您是否为您的服务所依赖的这 3 个存储库提供模拟?
-
@Daniel,嗨,我想测试与数据库的集成。我没有收到错误,我只是没有获得所需的代码。
-
我不确定我是否理解这个问题。你不去那里是什么意思?在 Visual Studio 中运行该测试时会发生什么?
-
@Daniel,我无法创建 _categoryRepository、_keywordRepository、_keywordAdCategoryRepository 上下文。
标签: asp.net-mvc-3 unit-testing mstest automapper autofac