问题标签 [parameterized-unit-test]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1894 浏览

java - JUnit - 循环测试用例并比较结果

我正在学习 JUnit,我必须多次测试一个方法。我必须根据两个参数(环境和案例#)测试该方法。我正在两个环境中工作,我必须检查相同的 Case# 是否在不同环境之间产生相同的结果。这是测试用例:

结果作为单个测试用例产生,但我要求结果为:

我尝试使用参数化测试用例,但测试方法将独立执行。我必须比较两个环境之间的结果,我需要带有@Test 的方法返回一些值(方法应该是无效的)然后断言。请指教。

0 投票
1 回答
992 浏览

java - 在 IntelliJ IDEA 中使用 DataProvider 进行的 TestNG 测试失败

我最近开始玩 tdd 并遇到了一个问题,我不明白为什么一件事有效而另一件事不工作。

以下代码适用于我:

对应的测试:

如果我像这样更改 ant 构造函数,则测试失败:

失败是指前两组 DataProvider 的测试正常工作,其余的失败/未完成。虽然我不太确定是什么失败了。如果我删除 DataProvider 中的前两组数据,仍然只有前两个数据集(之前的第 3 和第 4 个数据集)不会失败。

我使用IntelliJ,除了“失败”测试之外的符号仍然是“加载图标”。

调试每个单独的测试用例表明点设置正确。从测试中删除断言不会改变任何东西。

有人可以向我解释这种行为吗?

提前致谢

埃贡

编辑:更正了失败的构造函数版本

0 投票
2 回答
7346 浏览

java - 将线程局部变量传递给 JUnit 测试

我有一个线程,它初始化一个线程局部类变量并从运行单元测试开始:

现在我想通过访问(或引用)线程本地对象来运行 JUnit 测试foo。这可能吗?我试图保持简单,但复杂的事情似乎并不清楚(所以我添加了一些代码): Foo 对象需要FooThread初始化当前的。

0 投票
2 回答
1157 浏览

java - JUnit:注入@Parameterized参数?

将一组参数注入@Parameterized 测试类的最简单方法是什么?

用例:

我有一个看起来像这样的普通班

可以像这样调用标准的 JUnit 运行器: org.junit.runner.JUnitCore.runClasses(TestClass1.class, ...);

但是,没有办法指定/覆盖参数。

如何注入自己的参数?

0 投票
1 回答
2545 浏览

c++ - GoogleTest 参数化测试 - 可以在参数之间调用 SetUp 和 TearDown?

我有一个 gtest 参数化类,我想在每个参数之间调用一些 SetUp 和 TearDown。我知道 googletest 提供在每个测试用例之前的 SetUp 和在所有测试用例之前的 SetUpTestCase。

我有这样的事情:

关于如何使这项工作的任何想法?也许是一种查看特定参数的最后一个测试用例何时运行的方法?还是我必须为每个单独的参数实例化一个测试用例?

0 投票
2 回答
234 浏览

unit-testing - 独立的智能单元测试

我使用 Smart Unit Tests(以前称为 Pex)已经有一段时间了。Pex 能够作为独立的命令行应用程序运行,这对于多种场景非常有用(例如扩展参数化单元测试的参数列表)。

但是,在智能单元测试(集成在 VS2015 中)的情况下,我无法找到独立运行它的功能(它只能通过右键单击要分析的方法来工作)。因此,例如,当我想扩展 PUT 参数列表时,我还必须在被测方法(我真的想避免)中这样做,以便智能单元测试发现它。

所以,我的问题是,是否有可能只从生成的 PUT 方法运行智能单元测试,就像在 Pex 中一样?

0 投票
32 回答
214008 浏览

android - 在 Android Studio 中运行参数化单元测试时,未找到给定的测试包括错误

我尝试在 Android Studio 中运行参数化单元测试,如下所示。

结果是错误,说明没有测试运行。但是,如果我删除了参数化,并将它们更改为单独测试。有用。任何人都可以阐明为什么这不起作用?Android开发还不支持参数化单元测试吗?谢谢!

下面是堆栈跟踪的错误。

0 投票
0 回答
395 浏览

powershell - nunit-console /runlist 不在包含参数化测试用例的列表中运行某些测试

使用以下命令从 Powershell 运行时

& "c:\Program Files (x86)\Nunit 2.6.4\bin\nunit-console.exe" /runlist=C:.....\ReRunTests.txt "C:.....\bin\debug \Web.Test.UI.dll"

和以下运行列表 ReRunTests.txt

AddToCartFeature.AddOneItemToMyCart AddToCartFeature.AddPremierToBasket DeliveryOptionsWithANonRegisteredUserFeature.SelectNamedDayDeliveryOption DeliveryOptionsWithANonRegisteredUserFeature.SelectNextDayDeliveryOption DeliveryOptionsWithANonRegisteredUserFeature.SelectPremierDeliveryOption DeliveryOptionsWithANonRegisteredUserFeature.SelectStandardAndReturnsLabelDeliveryOption DeliveryOptionsWithANonRegisteredUserFeature.SelectStandardDeliveryOption UseAlternativeDeliveryAddressOnCheckoutFeature.AddValidAlternativeAddress SubmitFreeTextSearchForExistingProducts("jeans","02/fts/?search=jeans",null) CreateNewAccountFeature.AnonymousUserWithoutAnExistingAccountEditMyAccountDetailsFeature.EditExistingCustomerDetails ViewMyAccountDetailsFeature.ViewingCardHolderAddress RefineProductListByParametersFeature.SortByPercentageSavingAndGoToTheSecondPage TopNavSearchFeature.UsingDropDownNavigation("Mens","MensNewIn","01/mens/new",null) TopNavSearchFeature.UsingDropDownNavigation("Womenswomen","/"Womens" ,无效的)

以粗体突出显示的测试被跳过。这似乎与转义引号或逗号有关,但我不明白为什么这个会运行

SubmitFreeTextSearchForExistingProducts("jeans","02/fts/?search=jeans",null)

并且以下非参数化的确实运行。

我试过转义引号,但测试根本没有运行。

0 投票
3 回答
7840 浏览

c# - 使用 Visual Studio 2015 Intellitetest 进行参数化单元测试

长期以来,我一直希望在 MSTest 中看到的一项功能是参数化单元测试 (PUT)。我很高兴听到 Intellitet能够创建上述测试。但是,我已经开始使用 Intellitetest,并且我认为我对 PUT 的定义与 Microsoft 的不同。

当我想到“PUT”时,我会想到NUnit中的 TestCases 或xUnit 中的 Theories。比我聪明得多的人似乎使用相同的术语

有人可以告诉我 Intellitetest 是否真的能够以与 NUnit 或 xUnit 相同的方式创建 PUT,或者这是一个重载术语的问题,在 Intellitet 中意味着一件事,而对于大多数其他测试框架来说又是另一件事?谢谢。

0 投票
0 回答
133 浏览

unit-testing - Osherove 的参数化单元测试的命名约定?

Roy Osherove 在他的“单元测试的艺术”一书中指出了一个很好的音调命名测试,但它与他只是顺便提到的参数化测试不一致。参数化测试在某些方面更易于编写和阅读。但也有消极的方面:

  • 更难调试一组特定的参数;
  • 更难理解究竟是什么检查测试,因为参数可以自己不说话。

有兴趣的人自己决定这个问题。以及得出了什么结论。为了速度写作测试而牺牲你的分数是正确的吗?