我有一个NUnit测试
[TestCase(...)]
public void test_name(Action onConfirm)
{
...
}
我想要做的是在TestCase属性中将Action传递给此测试,但无论我尝试什么都会失败。我试着把
() => SomeDummyMethodIDefined()
直接进入TestCase并且无效。
我创建了一个Action
Action DummyAction = () => SomeDummyMethodIDefined();
并将DummyAction传递给TestCase,但这不起作用。
有办法做到这一点吗?
答案 0 :(得分:4)
这是一个非常粗略的例子,我从阅读NUnit docs here
中获得灵感namespace NUnitLambda
{
using System;
using NUnit.Framework;
[TestFixture]
public class Class1
{
[Test]
[TestCaseSource(typeof(SourceClass), "TestCases")]
public void Foo(Action action)
{
action();
}
}
public class SourceClass
{
private static Action t = () => Console.WriteLine("Hello World");
public static Action[] TestCases = { t };
}
}
玩一下代码,希望你能得到你想要的东西。为了记录,我使用的是NUnit 2.6。
编辑:
您不必在此使用static
,例如
public class SourceClass
{
private Action t = () => Console.WriteLine("Hello World");
public Action[] TestCases;
public SourceClass()
{
TestCases = new Action[1];
TestCases[0] = t;
}
}