Gob*_*ins 12 c# unit-testing visual-studio-2010 vs-unit-testing-framework
我想在C#中为所有代码路径测试以下方法.
public int foo (int x)
{
if(x == 1)
return 1;
if(x==2)
return 2;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我已经看到这个pex单元测试测试了多个输入.如何创建接受多个输入的单元测试?
[TestMethod()] //some setup here??
public void fooTest()
{
//some assert
}
Run Code Online (Sandbox Code Playgroud)
我想避免为每个输入创建一个测试方法.我正在使用Visual Studio 2010/2012和.Net 4.0
Ser*_*kiy 22
您可以使用XML,数据库或CSV数据源MS Test.创建FooTestData.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Rows>
<Row><Data>1</Data></Row>
<Row><Data>2</Data></Row>
</Rows>
Run Code Online (Sandbox Code Playgroud)
并将其设置为测试的数据源:
[TestMethod]
[DeploymentItem("ProjectName\\FooTestData.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"|DataDirectory|\\FooTestData.xml", "Row",
DataAccessMethod.Sequential)]
public void FooTest()
{
int x = Int32.Parse((string)TestContext.DataRow["Data"]);
// some assert
}
Run Code Online (Sandbox Code Playgroud)
BTW与NUnit框架的匹配更容易 - 您可以使用TestCase属性来提供测试数据:
[TestCase(1)]
[TestCase(2)]
public void FooTest(int x)
{
// some assert
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25787 次 |
| 最近记录: |