Je dois tester la méthode générique ci-dessous qui est la classe interne d'un autre assemblage.C# Tests unitaires pour la méthode générique
internal class JsonSerializationUtility
{
public static string SerializeJson<T>(T obj)
{
string jsonFormattedString = string.Empty;
try {
MemoryStream memStreamObj = new MemoryStream();
DataContractJsonSerializer jsonSerObj = new DataContractJsonSerializer(typeof(T));
jsonSerObj.WriteObject(memStreamObj, obj);
memStreamObj.Position = 0; StreamReader sr = new StreamReader(memStreamObj);
jsonFormattedString = sr.ReadToEnd();
}
catch (Exception ex) {
Log.Error("Exception details: ", ex);
}
return jsonFormattedString;
}
}
et j'ai essayé de cette façon:
[TestMethod]
public void SerializeJson()
{
PrivateType privateObj = new PrivateType(typeof(JsonSerializationUtility));
string input= "WorldCup2015";
string output = privateObj.InvokeStatic("SerializeJson<objectType>", input).ToString();
Assert.IsNotNull(output);
}
Mais je reçois la référence de méthode manquante. Quelqu'un peut-il suggérer comment devrait avoir à tester pour la méthode générique.
J'ai effectué la même procédure d'écriture de code de test pour une méthode statique simple, mais impossible pour une méthode générique.
En général, vous ne testez pas le code interne directement - vous testez quel que soit _calls_ ce code. –