C# WebApi les Tests Unitaires et les Moqueries des Contrôleurs

Je suis en train de travailler sur ce WebAPI projet et j'ai besoin de créer des tests unitaires pour. La base du projet a été créé à l'aide de VS 2010 , puis une WebApi Module a été ajouté.

Le fonctionnement de la manette sont plutôt de prendre le chemin de l'essai/de moqueries. Je suis à l'aide de xUnit et Moq , mais il n'y a absolument pas besoin de coller avec ces deux.

L'application utilise des objets spécifiques pour traiter les accès de base de données, j'ai donc l'
controllerObject et son constructeur exige la DataAccessObject

Je vais avoir des problème avec se moquer de la contrôleur /dataaccess paire. Le premier test im essayant de course est un GetAllFromDataBase, mais je n'ai pas vraiment avoir une idée sur la façon de le faire.

EDIT:

J'ai fait ce que Cuong Le dit à moi et l'ensemble se déplace maintenant, j'ai vraiment aprécier. Mais je perplexe dans un autre problème. Pour accéder à l'API, il y a un nom d'utilisateur/mot de passe et mon contrôleur utilise du Fil.CurrentPrincipal.L'identité.Nom; maintenant j'aurais besoin de définir cette valeur pour qu'il puisse pleinement de travail, je suppose.

Également la valueServiceMock.Le programme d'installation(service => service.GetValues())
.Retourne(new[] { "valeur1", "valeur2" });

ne semble pas fonctionner. comme le code essaie d'atteindre, pour la base de données, et ne reçoit rien, car il ne peux pas obtenir un nom d'utilisateur valide pour chercher

Vous ne devriez pas vous moquer de la manette, vous serait se moquer des services que le contrôleur de besoins. Si u se moquaient de la manette, vous ne serez pas le test du contrôleur. C'est là toute la question. Jetez un oeil à ce post: peterprovost.org//blog/2012/06/16/...
Avez-vous vérifier que vous passez maquette de l'objet via le constructeur comme ceci: var controller = new ValuesController(valueServiceMock.D'un objet);

OriginalL'auteur oSR | 2012-08-03