回放设置在测试之间是否持久

本文关键字:是否 之间 测试 设置 回放 | 更新日期: 2023-09-27 18:29:49

如果我在测试方法中修改播放设置,例如:

[TestMethod]
public void MyTest()
{
    Playback.PlaybackSettings.AlwaysSearchControls = true;
}

这种设置会在我的测试之间持续吗?还是会重置?

回放设置在测试之间是否持久

单元测试的要点是任何给定的测试都可以独立运行。因此,状态和顺序是不能保证的,不应该依赖。断点指向构造函数将向您显示,您的测试类甚至在每次测试中实例化一次。

编辑:请注意,"单个测试"是指单个[TestMethod]

尽管静态字段仍然是持久的,但这与通常的单元测试实践背道而驰。相反,如果您的每个测试都依赖于所设置的文件,请使用[TestInitialize]标记的方法,因为它将在每个测试之前运行,即使同时运行多个测试也是如此。

所有这些的简单答案是,是的,它可能会持续下去,但标准和安全要求都要求你假设它不会。

以前接受的答案不是很精确,也不是特定于编码的UI测试,所以我决定添加一个更精确的答案。

PlaybackSettings在测试之间不会持久存在。

事实上,我通过在单个测试运行中运行以下两个测试来测试行为:

    [TestMethod]
    public void test1()
    {
        Assert.IsFalse(Playback.PlaybackSettings.AlwaysSearchControls);
        Playback.PlaybackSettings.AlwaysSearchControls = true;
    }
    [TestMethod]
    public void test2()
    {
        Assert.IsFalse(Playback.PlaybackSettings.AlwaysSearchControls);
        Playback.PlaybackSettings.AlwaysSearchControls = true;
    }

两项测试均通过。:)