gpt4 book ai didi

unit-testing - 在测试装置中创建相互依赖的测试是一个坏主意吗?

转载 作者:行者123 更新时间:2023-12-03 18:24:27 26 4
gpt4 key购买 nike

例如:

// NUnit-like pseudo code (within a TestFixture)

Ctor()
{
m_globalVar = getFoo();
}

[Test]
Create()
{
a(m_globalVar)
}

[Test]
Delete()
{
// depends on Create being run
b(m_globalVar)
}
… 或者…
// NUnit-like pseudo code (within a TestFixture)

[Test]
CreateAndDelete()
{
Foo foo = getFoo();
a(foo);

// depends on Create being run
b(foo);
}
......我会选择后者,并假设我的问题的答案是:
不,至少不是 NUnit,因为 according to the NUnit manual :
构造函数不应有任何副作用,因为 NUnit 可能会在 session 过程中多次构造该类。
...另外,我可以假设这是一般的不好的做法吗?由于测试通常可以单独运行。所以 Create 的结果可能永远不会被 Delete 清除。

最佳答案

是的,这是不好的做法。在我所知道的所有单元测试框架中,都不能保证测试方法的执行顺序,因此明确不鼓励编写依赖于执行顺序的测试。

正如您还注意到的,如果测试 B 依赖于测试 A 的(副作用)效果,则测试 A 包含一些通用的初始化代码(然后应将其移至通用的设置方法中),或者两个测试是相同的一部分故事,所以他们可以团结起来(恕我直言 - 有些人坚持每个测试方法有一个断言,所以他们会不同意我的观点),否则测试 B 应该完全独立于测试 A 的夹具设置。

关于unit-testing - 在测试装置中创建相互依赖的测试是一个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com