使用VS2010测试工具进行参数化测试

时间:2010-11-09 11:30:40

标签: silverlight unit-testing visual-studio-2010 mstest

是否可以使用适用于Silverlight的VS2010测试工具编写参数化测试?

在常规NUnit测试中,这将使用TestCase属性...

完成
[Test]
[TestCase("myParam1")]
[TestCase("myParam2")]
[TestCase("myParam3")]
public void TestSomethingWithParameters(string myParam)
{
  // ...some tests using myParam
}

这可以使用VS2010测试工具吗?

2 个答案:

答案 0 :(得分:1)

不,这是不可能的。下一个最好的事情是使用数据驱动的测试,例如。

http://callumhibbert.blogspot.com/2009/07/data-driven-tests-with-mstest.html

还查看MSDN文档。

答案 1 :(得分:0)

您可以使用测试方法创建基类,并将参数创建为虚拟属性。 从此类继承时,只需使用所需的值覆盖属性。 请参阅示例代码:

public class Operation
{
    public static int Add(int x, int y)
    {
        return x + y;
    }
}

[TestClass]
public class AddTests : WorkItemTest
{
    protected virtual int First{get { return 0; }}
    protected virtual int Second{get { return 0; }}

    [TestInitialize]
    public virtual void Init()
    {
        //Init code
    }

    [TestCleanup]
    public virtual void Clean()
    {
        //Clean code
    }

    [TestMethod]
    [Description("x+y = y+x")]
    public virtual void Test_operation_commutativity()
    {
        Assert.AreEqual(Operation.Add(Second, First), Operation.Add(First, Second));
    }
}

[TestClass]
public class AddPositiveTest : AddTests
{
    protected override int First { get { return 1; } }
    protected override int Second { get { return 2; } }
}

[TestClass]
public class AddNegativeTest : AddTests
{
    protected override int First { get { return -1; } }
    protected override int Second { get { return -2; } }
}