J'essaie de simuler des opérations de base de données. J'ai un problème dans la moqueur code va comme ceci: p> in dal: p> dans le projet test d'unité: p> - Solution - P> crée une méthode d'extension pour ajouter du paramètre avec valeur. Merci Marc Gravell de me faire remarquer cette direction. P> sqlparametercollection code>. J'ai essayé de créer méthode virtuelle code> qui retournera dbparametercollection code> mais je perds toutes les fonctionnalités que sqlparametercollection code> donne comme addwithvalue code > Etc. Y a-t-il une façon de ma moquer sqlparametercollection code>? Y a-t-il une autre approche de l'unité test DAL? J'utilise MOQ. public static IDbDataParameter AddParameterWithValue(this IDbCommand cmd, string paramName, object paramValue)
{
var dbParam = cmd.CreateParameter();
if (dbParam != null)
{
dbParam.ParameterName = paramName;
dbParam.Value = paramValue;
}
return dbParam;
}
3 Réponses :
Personnellement, j'approche ce problème en écrivant un Ceci permet une utilisation facile contre toute pile ado.net, y compris des abstractions telles que les décorateurs de journalisation. P> addParameterwithvalue code> Extension à dBCommand code> (ou idbcommand code>). Il doit être sur la commande de sorte que vous ayez accès à créeparamètre code> , puis appelle .parameters.add code>. p>.
@AsDFG Je pense que j'ai laissé une version de cela dans "DAPPER" si vous en avez besoin
Ce sera cool. J'écris la méthode de l'extension mais je me lance.
@AsDFG HI j'ai fondamentalement moqué de la collection de paramètres comme ci-dessous espère que cela aide p> p>
hi j'ai trouvé la solution.
Je devais mettre en œuvre un MOQ pour l'interface IdataParameterCollection et devait l'envoyer à l'instance d'idbcommand. p>
avec que mon objet idbcommand.Parameters est devenu différent de null. p>
Vous voudrez peut-être appeler .parameters.add avec le paramètre nouvellement créé, car cela est attendu avec une méthode d'addition