如何解决如何将方法作为参数调用到TestCase属性NUnit中?
就像我们可以这样写:[TestCase(1、2、3)]
如何调用如下函数?: [TestCase(SomeFunction(),1,2,3)]
解决方法
您可以尝试使用TestCaseSource属性,并在用例中使用静态方法。
public static IEnumerable<EditModel> Generator()
{
// You can also call methods here
yield return new EditModel();
}
[Test]
[TestCaseSource(nameof(Generator))]
public void DoSomething(EditModel model)
{
Console.WriteLine($"{model.commentText}");
}
,
要扩展上述答案,您还可以尝试使用TestCaseSource属性并为您的测试用例实现一个工厂类。
public class MyFactoryClass
{
public static IEnumerable TestCases
{
get
{
yield return new TestCaseData(MyMethod()).Returns(expectedTestResult);
....
}
}
public EditModel MyMethod()
{
// Put method code here
return editModel;
}
}
public class MyTests
{
[Test,TestCaseSource(typeof(MyFactoryClass),"TestCases")]
public void DoSomething(EditModel model)
{
// Test code here.
}
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。