- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在测试一个模块,其中每个测试类共享相同的行为:
我决定分别使用TestInitialize和TestCleanup来执行事务的Begin和Rollback。
直截了当的方法是在父类中编写 TestInitialize/TestCleanup,但这不适用于此测试框架。
为此解决方法是使用部分类。这种方法在我的案例中似乎可行,因为我的测试类主要是无状态的。事件不是理想的解决方案,它至少为我节省了一些复制/粘贴操作。
有人知道更好的方法吗?
这是部分类解决方案的示例:
在我的例子中,我分别测试了每个模块,对于这个例子,我将使用 Sales 模块:
SalesTest.cs 文件:
[TestClass]
public partial class SalesTest
{
[TestInitialize]
public void Setup()
{
//begin transaction
}
[TestCleanup]
public void Cleanup()
{
//rollback transaction
}
}
SalesTest.Order 文件:
public partial class SalesTest
{
[TestMethod]
public void SaveOrder_OnlyRequiredValuesFilled_SuccessfullySaved()
{
//Run some SQL queries
}
}
最佳答案
看起来您正在使用 Microsoft.VisualStudio.TestTools.UnitTesting
框架。我没有发现使用基类进行清理和初始化有任何问题。
例如
[TestClass]
public class TestDemo : BaseTests
{
[TestMethod]
public void SaveOrder_OnlyRequiredValuesFilled_SuccessfullySaved()
{
//Run some SQL queries
}
}
[TestClass]
public abstract class BaseTests
{
[TestInitialize]
public void Setup()
{
Console.WriteLine("Setup executed.");
//begin transaction
}
[TestCleanup]
public void Cleanup()
{
Console.WriteLine("Cleanup executed.");
//rollback transaction
}
}
这会很好地工作,我可以将 BaseTest
继承到任何测试,并且 Intiailize 和 Cleanup 将在任何测试之前和之后执行。
关于在基类中使用 TestInitialize/TestCleanup 进行 C# 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383023/
我将如何为这些 [TestMethod()] 编写 [TestCleanup()] 方法。 我有以下 11 个: 当单独运行时,它们通过,当不同时运行时,第一个通过 [TestMethod()] pu
我想在我的单元测试中执行 TestCleanup,但我需要将参数传递给清理方法。但是由于默认的 TestCleanup 是自动调用的,所以我无法将任何参数传递给它。 有人可以建议一种方法吗? 最佳答案
如果我们的 CI 服务器上的负载过高或外部服务(GoogleDocs 等)API 调用超时,我们的工作中有很多测试偶尔会失败。有没有一种方法可以设置 TestCleanup 代码,以便可以重新运行测试
我注意到 [TestCleanup] 方法不能采用 TestContext 参数。那么我应该如何知道正在清理哪个测试? 最佳答案 你可以在你的类上有一个名为 TestContext 的公共(publi
我有一个测试使用外部程序集来访问我们正在测试的应用程序中的 UI 功能。如果 UI 未处于适当的状态,此程序集将引发其自定义类型的异常。 我已经设置了一个 TestCleanup 方法来终止应用程序的
我有一组 MSTest 测试用例,它们使用具有这些属性的方法从测试开始后创建的测试数据库中的表中删除所有行;每隔一段时间,我都会从数据库中的一个单元测试中得到一行。 由于我正在保存测试开始时间并删除所
我有一个应用程序,在许多类中有许多单元测试。许多测试都有 DeploymentItem 属性来提供所需的测试数据: [TestMethod] [DeploymentItem("UnitTesting\
我正在测试一个模块,其中每个测试类共享相同的行为: 开始交易 执行 SQL 查询 回滚事务 我决定分别使用TestInitialize和TestCleanup来执行事务的Begin和Rollback。
我一直在努力解决这个问题,希望它能帮助其他人。 在使用 MsTest 创建单元测试时,我发现我在每个测试中都重复了相同的代码,并发现了一些方便的属性(TestInitialize、TestCleanu
我有一个基类,其中有一个 TestInitialize 和一个 TestCleanup。然后我有其他继承自此类的测试类。 TestCleanup 应该在派生类的测试失败时执行某些操作。 TestCle
我正在做这样的测试: [DataTestMethod] [DataRow("example1")] [DataRow("example2")] public void Test_Example(str
下面您可以看到一些在 Window Phone 单元测试应用程序中使用 Mstest 编写的代码。 我有一个名为 TestMethod1 的普通 TestMethod 和一个名为 TestMethod
我是一名优秀的程序员,十分优秀!