如何在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中调试TypeScript单元测试?

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

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

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

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

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

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

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

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

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

用Visual Studio Code编写单元测试

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在Visual Studio代码中调试MSTest单元测试