No estoy seguro de si debería preguntar esto aquí, pero aquí vamos, mientras que la unidad de evaluación de un método estático privada que tiene como parámetro un corto me estoy poniendo un MissingMethodException sólo cuando este parámetro es 0.¿Es esto un error? MissingMethodException acceder a un método estático privado con 0 como parámetro
estoy usando VS 2010 SP1 focalización del Marco 4 (completo), aquí está el código mínimo para reproducir este error (que actualiza un código de Visual Basic 6 por lo que no ser grosero):
[DataContract]
public enum NotificationResult
{
[EnumMember]
Success,
[EnumMember]
StoredError,
[EnumMember]
InvalidId,
[EnumMember]
OperationError,
}
public sealed class NotificationContext
{
private static NotificationResult GetExecuteResult(short result)
{
NotificationResult executeResult;
switch (result)
{
case 0:
executeResult = NotificationResult.Success;
break;
case 1:
executeResult = NotificationResult.StoredError;
break;
case 2:
executeResult = NotificationResult.InvalidId;
break;
default:
executeResult = NotificationResult.OperationError;
break;
}
return executeResult;
}
}
Así es como estoy probando el código:
PrivateType privateHelperType = new PrivateType(typeof(NotificationContext));
var actual = (NotificationResult)privateHelperType.InvokeStatic(
"GetExecuteResult", (short)1);
var actual2 = (NotificationResult)privateHelperType.InvokeStatic(
"GetExecuteResult", (short)0); //here is where i get the exception
En la primera invocación i obtener el resultado esperado, en la segunda invocación tengo la excepción (añadí el reparto a corto pensar que tal vez la excepción fue porque no era encontrar un método con un int como parámetro).
¿Hay alguien capaz de reproducir el comportamiento ?, estoy haciendo algo mal?
Gracias por su ayuda.
No pruebe los métodos privados. – jason
@Jason lo sé, pero como he dicho, estamos actualizando una aplicación VB6 y este método no estaba obteniendo el 100% de cobertura y necesitamos verificar que funcionó según lo especificado. –
No necesita una cobertura del 100% en sus métodos privados; solo sus métodos no privados. – jason