我有兴趣在许多类上重用测试理论,特别是在需要相同测试的许多构造函数上。我最初的想法是使用委托来执行此功能。
然而,我认为我可能正在尝试重新发明轮子,尽管 C# 有一些功能,但我认为我正在尝试一种不正确的方法。对于这种事情,是否有使用比 InlineData 更正确的方法的支持方法?
InlineData 似乎用于注入输入,因此我可能会测试给定测试的许多示例。但是我可以为多个方法提供多个变量并进行测试 ^x 而不是 *x
[Theory]
[InlineData(input => new ConcreteConstructor(input)) ]
public void Constructor_Should_Not_Throw_Expection (Action<string>)
{
constructor("SomeString");
}
Run Code Online (Sandbox Code Playgroud)
NB 我认为我应该Func在这种情况下使用,因为返回了一个对象。无论如何,我怀疑这完全是错误的方法,所以这不是主要考虑因素。
public static IEnumerable<object[]> TestData()
{
Action<string> a1 = input => new ConcreteConstructor(input);
yield return new object[] { a1 };
Action<string> a2 = input => new AnotherConstructor(input);
yield return new object[] { a2 };
}
[Theory]
[MemberData(nameof(TestData))]
public void Constructor_Should_Not_Throw_Expection(Action<string> constructor)
{
constructor("SomeString");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |