这里是我的问题,作为一个例子假设我有一种方法来转换某些类型。是这样的:我应该根据文档记录我的方法并进行测试吗?
/// <summary>
/// Convierte el valor del objeto especificado a un valor equivalente de {T}.
/// </summary>
/// <typeparam name="T">El tipo del valor a regresar.</typeparam>
/// <param name="source">
/// Un objeto <see cref="string"/> con el valor a convertir.
/// </param>
/// <returns>
/// Un valor equivalente de <paramref name="source"/> de tipo {T} cuando la
/// conversión se puede realizar, el valor por defecto de {T} en caso contrario.
/// </returns>
/// <exception cref="Exception">
/// Cuando <paramref name="source"/> no es un valor valido para {T}.
/// </exception>
/// <exception cref="FormatException">
/// Cuando <paramref name="source"/> no es un valor valido para {T}.
/// </exception>
/// <exception cref="NotSupportedException">
/// Cuando no se puede realizar la conversión.
/// </exception>
/// <exception cref="ArgumentNullException">
/// Cuando <paramref name="source"/> es <see langword="null"/>.
/// </exception>
/// <example>
public static T ToGeneric<T>(this string source) where T : IComparable {
if(source == null) {
throw new ArgumentNullException("source","Cant be null"); //just as an example
}
TypeConverter converter = TypeDescriptor.GetConverter(typeof(T));
return ((T)converter.ConvertFrom(source));
}
正如哟可以看到我记录在每一个方法更多钞票的异常,但只有一个(ArgumentNullException)被我扔。
我使用我的文档作为基础来创建我的TestCases,所以在这种情况下,我会创建5个测试用例,一个用于每个异常,一个用于正确的用例。
我的问题,如果是这样做的正确方法? 如果我迟早会遵循我的模式,那么我会针对不会增加任何价值的IO东西进行一堆测试。 我认为唯一的选择就是记录我在我的方法中创建的异常,并且仅测试该异常,但是我的工作中的一些程序员不是很好,他们可能会困惑为什么该方法抛出NotSupportedException,如果该参数是不是空的(他们会说西班牙语,所以阅读例外信息对他们来说有点难)
何你处理这种事情,记录一切或你实际做的事情。
谢谢你的时间。
我忘了补充说,这是C#,所以没有检查异常(据我记忆),但我明白你的意思。谢谢 – 2010-02-24 07:10:35