0
我目前正在嘗試實現StructureMap的AutoMocking功能,我需要得到嘲笑的幫助。如何獲取StructureMap的AutoMocker來模擬假數據?
我有一個測試方法如下:
[Test]
public void DirctoryResult_Returns_Groups()
{
var autoMocker = new RhinoAutoMocker<GroupController>(MockMode.AAA);
GroupController controller = autoMocker.ClassUnderTest;
var directoryResult = controller.DirectoryResult("b");
var fundDirectoryViewModel = (FundDirectoryViewModel)directoryResult.ViewData.Model;
Assert.IsNotNull(fundDirectoryViewModel.Groups);
}
目前的測試失敗,因爲fundDirectoryViewModel.Groups
爲空。
真正實施DirectoryResult
如下:
private readonly IGroupService _groupService;
public PartialViewResult DirectoryResult(string query)
{
return PartialView(new FundDirectoryViewModel
{
Groups =_groupService.GetGroupsByQuery(query)
});
}
其中_groupService.GetGroupsByQuery(query)
使用接口來IGroupRepository讀取來自數據庫中的數據。當然,我不希望我的測試從實際數據庫中讀取數據,但是有人能告訴我如何獲取模擬數據嗎?
我需要做些什麼來讓AutoMocker爲我模擬僞造的數據?
更新:
以供參考,這是
public class GroupService : IGroupService
{
private readonly IGroupRepository _groupRepository;
public GroupService(IGroupRepository groupRepository)
{
_groupRepository = groupRepository;
}
public IList<CompanyGroupInfo> GetGroupsByQuery(string query)
{
return _groupRepository.GetGroupsByQuery(query);
}
}
public class GroupRepository : DataUniverseRepository, IGroupRepository
{
public GroupRepository(ISession session)
{
_session = session;
}
public IList<CompanyGroupInfo> GetGroupsByQuery(string query)
{
// dig into the database and return stuff with _session..
}
}