Pur*_*ome 148 c# mstest visual-studio-2010 visual-studio vs-unit-testing-framework
我正在使用Visual Studio 2010 Beta 2.我有一个[TestClass],有一个[TestInitialize],[TestCleanup]有几个[TestMethods].
每次运行测试方法时,都会运行初始化和清理方法!
我的印象中[TestInitialize]和[TestCleanup]应只运行一次,每次当地试运行.
那是对的吗?如果没有,这样做的正确方法是什么?
ale*_*exn 297
TestInitialize并且TestCleanup在每次测试之前和之后运行,这是为了确保没有测试耦合.
如果要在ALL测试之前和之后运行方法,请使用ClassInitialize和ClassCleanup属性修饰相关方法.
来自Visual Studio中自动生成的测试文件的相关信息:
在编写测试时,可以使用以下附加属性:
// Use ClassInitialize to run code before running the first test in the class
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) { }
// Use ClassCleanup to run code after all tests in a class have run
[ClassCleanup()]
public static void MyClassCleanup() { }
// Use TestInitialize to run code before running each test
[TestInitialize()]
public void MyTestInitialize() { }
// Use TestCleanup to run code after each test has run
[TestCleanup()]
public void MyTestCleanup() { }
Run Code Online (Sandbox Code Playgroud)
从microsoft文档中获取的完整示例:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SampleClassLib;
using System;
using System.Windows.Forms;
namespace TestNamespace
{
[TestClass()]
public sealed class DivideClassTest
{
[AssemblyInitialize()]
public static void AssemblyInit(TestContext context)
{
MessageBox.Show("AssemblyInit " + context.TestName);
}
[ClassInitialize()]
public static void ClassInit(TestContext context)
{
MessageBox.Show("ClassInit " + context.TestName);
}
[TestInitialize()]
public void Initialize()
{
MessageBox.Show("TestMethodInit");
}
[TestCleanup()]
public void Cleanup()
{
MessageBox.Show("TestMethodCleanup");
}
[ClassCleanup()]
public static void ClassCleanup()
{
MessageBox.Show("ClassCleanup");
}
[AssemblyCleanup()]
public static void AssemblyCleanup()
{
MessageBox.Show("AssemblyCleanup");
}
[TestMethod()]
[ExpectedException(typeof(System.DivideByZeroException))]
public void DivideMethodTest()
{
DivideClass.DivideMethod(0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64367 次 |
| 最近记录: |