J'essaye actuellement d'implémenter la fonctionnalité de AutoMocking de StructureMap et j'ai besoin d'aide pour obtenir le moqué.Comment puis-je obtenir AutoMocker de StructureMap pour simuler de fausses données?
J'ai une méthode d'essai comme suit:
[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);
}
Actuellement le test est d'échouer parce que fundDirectoryViewModel.Groups
est nulle.
La mise en œuvre réelle de DirectoryResult
est la suivante:
private readonly IGroupService _groupService;
public PartialViewResult DirectoryResult(string query)
{
return PartialView(new FundDirectoryViewModel
{
Groups =_groupService.GetGroupsByQuery(query)
});
}
où _groupService.GetGroupsByQuery(query)
utilise une interface pour IGroupRepository de lire des données de la base de données. Bien sûr, je ne veux pas que mon test lise les données de la base de données actuelle, mais quelqu'un peut-il me dire comment obtenir des données fictives pour cela?
Que dois-je faire pour que l'AutoMocker se moque des fausses données?
mise à jour:
pour référence, c'est la définition de GroupService & GroupRepository
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..
}
}