将对象附加到数组失败的单元测试
Append objects to an array fails unit tets
我是单元测试新手。
我有一个扩展方法,可以将对象附加到对象数组。但是它在我 运行 任何时候都无法通过单元测试。下面是我的扩展方法
/// <summary>
/// Appends the given objects to the array source.
/// </summary>
/// <typeparam name="T">The specified type of the array</typeparam>
/// <param name="source">The original array of values</param>
/// <param name="toAdd">The values to append to the source.</param>
/// <returns>The concatenated array of the specified type</returns>
public static T[] Append<T>(this IEnumerable<T> source, params T[] toAdd) => source.Concat(toAdd).ToArray();
...这是我的测试
[Theory]
[InlineData("Test", "Local", 3, "First Test")]
[InlineData("Test", "Removable", 15, "Second Test")]
[InlineData("Test", "Dedicated", 33, "Third Test")]
public void AppendToArray_ArrayNotEmpty(string origin, string filePath, int lineNumber, string message)
{
object[] args = { };
args.Append(origin, filePath, lineNumber, message);
Assert.NotEmpty(args);
}
有什么我想念的吗?我正在使用 XUnit 作为我的测试框架。
您的 'Append' 方法不会修改 source
参数,因此您需要在调用它时将 return 值分配给某些东西。像这样:
args = args.Append(origin, filePath, lineNumber, message)
我是单元测试新手。
我有一个扩展方法,可以将对象附加到对象数组。但是它在我 运行 任何时候都无法通过单元测试。下面是我的扩展方法
/// <summary>
/// Appends the given objects to the array source.
/// </summary>
/// <typeparam name="T">The specified type of the array</typeparam>
/// <param name="source">The original array of values</param>
/// <param name="toAdd">The values to append to the source.</param>
/// <returns>The concatenated array of the specified type</returns>
public static T[] Append<T>(this IEnumerable<T> source, params T[] toAdd) => source.Concat(toAdd).ToArray();
...这是我的测试
[Theory]
[InlineData("Test", "Local", 3, "First Test")]
[InlineData("Test", "Removable", 15, "Second Test")]
[InlineData("Test", "Dedicated", 33, "Third Test")]
public void AppendToArray_ArrayNotEmpty(string origin, string filePath, int lineNumber, string message)
{
object[] args = { };
args.Append(origin, filePath, lineNumber, message);
Assert.NotEmpty(args);
}
有什么我想念的吗?我正在使用 XUnit 作为我的测试框架。
您的 'Append' 方法不会修改 source
参数,因此您需要在调用它时将 return 值分配给某些东西。像这样:
args = args.Append(origin, filePath, lineNumber, message)