我正在尝试让 Nunit 的 TestCase 与 Flag'd Enum 一起使用:
[NUnit.Framework.TestCase(Framework.Environments.HD3 | Framework.Environments.BizTalk, "Test","Test")]
public void SimpleTest(Framework.Environments environment, string org, string source)
{
environment = Framework.Environments.BizTalk| Framework.Environments.HI5;
....
测试的第一行是查看该值是否设置正确——它有效。尽管 TestCase 没有设置枚举。它得到 HD3 而不是 HIALUnSecured。
这就是我的枚举的创建方式:
[Flags]
public enum Environments
{
HD3 = 0,
HD1 = 1 << 0,
HD2 = 1 << 1,
HD4 = 1 << 2,
关于如何让它发挥作用的任何想法?是的,我可以使用第四个变量,但我有兴趣了解发生了什么。
更新
经过进一步调查,我发现 Nunit 可能是问题所在:
[TestCase("test", "test")]
public void test(string a, string b)
{
System.Diagnostics.Debug.Write("===============" + a + b);
}
在方法内部:a 和 b 为空。
这很可能与我的 NUnit 有关,我将不得不挖掘一下。
更新 2 似乎 TestDriven.NET 是罪魁祸首。它没有按预期工作。我更新了 TestDriven,它运行良好。