如何在Visual Studio 2013中为多个SQL单元测试编写“预测试”?

我不知道名字

当前,一个sql单元测试包括5个部分:

- Pre-Initialise
- Pre-Test
- Test
- Post-Test
- Post-Cleanup

对于我的某些测试,“ pre-test”部分是相同的,并且我必须多次复制粘贴Pre-Test代码,代码重复是一个坏主意...所以我的问题是是否有任何写方法仅在某个地方进行一次预测试,然后通过在单元测试项目中调用一个函数来运行它?

我当前的C#文件在我的测试用例后面的示例:

[TestClass()]
public class SqlServerUnitTestAssignUserToAssignment : SqlDatabaseTestClass
{
  private TransactionScope trans;

  public SqlServerUnitTestAssignUserToAssignment()
  {
    InitializeComponent();
  }

  [TestInitialize()]
  public void TestInitialize()
  {
    trans = new TransactionScope();
    base.InitializeTest();
  }
  [TestCleanup()]
  public void TestCleanup()
  {
    base.CleanupTest();
    trans.Dispose();
  }

  // generated code below:

  Designer support code

  Additional test attributes

  [TestMethod()]
  public void core_AssignUserToAssignmentTest()...

  private Sql DatabaseTestActions core_AssignUserToAssignmentTestData
}
乍得

难题的两个部分是:

  • 每个类的“通用脚本”:如果需要在给定测试类中的所有测试之前或之后运行通用代码,只需使用设计器将SQL放入该类的通用脚本中即可。

  • 基类测试初始化​​程序:如果需要在给定项目(或解决方案)中的所有测试之前或之后运行通用代码,请像这样创建一个新的基类,并使每个测试类都派生自该类。

--

public class MySqlTestsBase : SqlDatabaseTestClass
{
    [TestInitialize]
    public void TestInitialize()
    {
        PrivilegedContext = TestService.OpenPrivilegedContext();

        CleanupTables();

        //"Common Scripts" are run
        base.InitializeTest(); 
    }

    [TestCleanup]
    public void TestCleanup()
    {
        CleanupTables();

        base.CleanupTest();
    }

    /// <summary>
    /// Deletes data from all tables that tests might have affected.
    /// </summary>
    private void CleanupTables()
    {
        TestService.Execute(PrivilegedContext, PrivilegedContext, new SqlDatabaseTestAction
        {
            SqlScript = @"
                DELETE CustomerOrder
                DELETE Customer
                DELETE Order
            "
        });
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2017/2019中为特定目标框架运行单元测试?

Visual Studio Express 2013:单元测试中的程序输出(控制台,调试等)

在Visual Studio 2013中向我的单元测试项目添加引用时出错

在Visual Studio 2013中生成单元测试报告

如何使用Visual Studio 2013专业版来分析单个单元测试的性能?

节点工具Visual Studio(NTVS)中的调试单元测试

为什么在Visual Studio 2015 for SQL Server项目中单元测试显示为灰色?

用Visual Studio Code编写单元测试

Visual Studio 2017中的Xamarin(Android)单元测试

如何从Visual Studio Code中使用Mocha调试用Typescript编写的单元测试

如何在Visual Studio 2017 Mac中调试.NET Core /标准单元测试?

在Visual Studio本机单元测试中,是否可以将单元测试耦合到项目?

如何在Visual Studio单元测试中将Serilog输出写入控制台?

如何在Visual Studio中调试TypeScript单元测试?

如何解决:NUnit单元测试未显示在Visual Studio社区(Mac)的测试板中

如何在Visual Studio 2019中使用.NET 4.6.2版运行单元测试?

在Visual Studio 2019中未发现的单元测试

如何在Visual Studio 2013 Express中安装单元测试生成器扩展

如何使用Visual Studio 2013 Ultimate对WinForms进行单元测试?

如何在Qt中设置单元测试-Visual Studio 2013项目

C#单元测试Visual Studio 2013测试失败

如何在Android Studio中为单元测试设置自定义可绘制目录

将单元测试数据附加到Visual Studio中的单元测试

如何在Visual Studio中对Windows 10应用进行单元测试?

通过TFS在Visual Studio中运行Jasmine单元测试

在Visual Studio 2013中使用HttpClient进行单元测试/集成测试Web API

在 Visual Studio Code 中调试 MSTest 单元测试

如何在 Visual Studio 2015 中进行单元测试

如何在 CI 构建 Azure DevOps 中构建单元测试项目以及“Visual Studio 构建”任务