标签: parameterized-unit-test

你如何在python中生成动态(参数化)单元测试?

我有一些测试数据,想为每个项目创建一个单元测试.我的第一个想法是这样做:

import unittest

l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]]

class TestSequence(unittest.TestCase):
    def testsample(self):
        for name, a,b in l:
            print "test", name
            self.assertEqual(a,b)

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

这样做的缺点是它在一次测试中处理所有数据.我想在运行中为每个项目生成一个测试.有什么建议?

python unit-testing parameterized-unit-test

211
推荐指数
10
解决办法
8万
查看次数

使用动态测试次数进行JUnit测试

在我们的项目中,我有几个JUnit测试,例如从目录中获取每个文件并对其进行测试.如果我实现了一个testEveryFileInDirectory方法,TestCase那么只显示一个可能失败或成功的测试.但我对每个文件的结果感兴趣.如何在每个文件中编写一个TestCase/ TestSuite如此单独的测试,例如在Eclipse的图形化TestRunner中?(为每个文件编写显式测试方法不是一种选择.)

ParameterizedTest问题与Eclipse Testrunner中的名称进行比较.

java junit unit-testing parameterized-unit-test

92
推荐指数
3
解决办法
3万
查看次数

在一个参数化类(junit)中创建多个参数集

目前,我必须为每个我想用几个不同输入测试的方法创建一个参数化测试类.有没有办法在一个文件中添加它?

现在有CalculatorTestAdd.java一组参数用于检查Add()功能是否正常工作.我是否有可能将此连接"连接"到该Add()函数并为该Subtract()方法创建一个额外的集合并在同一测试类中添加此方法,从而导致一个文件被调用CalculatorTest.java

java junit parameterized parameterized-unit-test

48
推荐指数
7
解决办法
5万
查看次数

MSTest等效于NUnit的参数化测试?

NUnit支持一项功能,您可以在其中指定一组数据输入,以便多次运行单元测试.

[RowTest]
[Row(1001,1,2,3)]
[Row(1,1001,2,3)]
[Row(1,2,1001,3)]
public void SumTests(int x, int y, int z, int expected)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

使用MSTest完成同类事物的最佳方法是什么?我找不到类似的属性集.

nunit unit-testing mstest parameterized-unit-test

46
推荐指数
3
解决办法
2万
查看次数

编写可重用(参数化)unittest.TestCase方法

可能重复:
如何在python中生成动态(参数化)单元测试?

我正在使用unittest包编写测试,我想避免重复代码.我将进行一些测试,这些测试都需要一个非常类似的方法,但每次只有一个值不同.一个简单而无用的例子是:

class ExampleTestCase(unittest.TestCase):

    def test_1(self):
        self.assertEqual(self.somevalue, 1)

    def test_2(self):
        self.assertEqual(self.somevalue, 2)

    def test_3(self):
        self.assertEqual(self.somevalue, 3)

    def test_4(self):
        self.assertEqual(self.somevalue, 4)
Run Code Online (Sandbox Code Playgroud)

有没有办法编写上面的例子,而不是每次都重复所有的代码,而是编写一个通用的方法,例如

    def test_n(self, n):
        self.assertEqual(self.somevalue, n)
Run Code Online (Sandbox Code Playgroud)

告诉unittest用不同的输入尝试这个测试?

python unit-testing testcase parameterized-unit-test

26
推荐指数
2
解决办法
1万
查看次数

Google测试:有没有办法组合一个既可以参数化又可以参数化值的测试?

我知道如何分别开发类型参数化测试和值参数化测试.我想弄清楚的是,是否可以将两者结合起来.换句话说,创建一个通用测试,该测试采用该类型的任何类型和范围的值.

unit-testing googletest parameterized-unit-test

25
推荐指数
1
解决办法
5220
查看次数

茉莉参数化单元测试

好吧作为C#NUnit的家伙,这可能很奇怪.

但茉莉花是否允许参数化单元测试?

我不确定它是否违反"声明"和"它"以使非程序员可读.

我见过一些第三方插件,但它们有点陈旧,不确定它是否已添加到茉莉花中.如果我想使用插件

只是为了帮助将来发现这一点的人,我在茉莉花论坛上被告知在Jasmine本身内没有对参数化测试的一流支持.

unit-testing parameterized-unit-test jasmine parameterized-tests

24
推荐指数
4
解决办法
7604
查看次数

我可以在DUnit中编写'参数化'测试吗?

我正在使用DUnit来测试Delphi库.我有时会遇到一些情况,我会编写几个非常相似的测试来检查函数的多个输入.

有没有办法在DUnit中编写(类似的东西)参数化测试?例如,为适当的测试程序指定输入和预期输出,然后运行测试套件并获得有关多次运行测试失败的反馈?

(编辑:一个例子)

例如,假设我有两个这样的测试:

procedure TestMyCode_WithInput2_Returns4();
var
  Sut: TMyClass;
  Result: Integer;
begin
  // Arrange:
  Sut := TMyClass.Create;

  // Act:
  Result := sut.DoStuff(2);

  // Assert
  CheckEquals(4, Result);
end;

procedure TestMyCode_WithInput3_Returns9();
var
  Sut: TMyClass;
  Result: Integer;
begin
  // Arrange:
  Sut := TMyClass.Create;

  // Act:
  Result := sut.DoStuff(3);

  // Assert
  CheckEquals(9, Result);
end;
Run Code Online (Sandbox Code Playgroud)

我可能会有更多的这些测试做同样的事情,但有不同的输入和期望.我不想将它们合并到一个测试中,因为我希望它们能够独立通过或失败.

delphi dunit delphi-xe parameterized-unit-test

22
推荐指数
3
解决办法
2399
查看次数

以更智能的方式在Junit 5(或其他测试Java库)中使用数组进行参数化

我正在尝试参数化这个测试:

@Test
public void reverseQuote(double[] qsp) throws Exception {
...}
Run Code Online (Sandbox Code Playgroud)

对我来说似乎很荒谬,它不存在一些初始化数组的快速方法qsp,例如ValueSource:

@ParameterizedTest
@ValueSource(ints = { 1, 2, 3 })
void testWithValueSource(int argument) {
    assertNotNull(argument);
}
Run Code Online (Sandbox Code Playgroud)

我的目标是做一些事情@ValueSource(doublesArray = {new double[]{1.0, 2.0, 3.0}})(现在返回错误).不存在什么允许类似的东西? 其他答案似乎只是建议的方式,如使用@MethodSource@ConvertWith.

我也接受实施其他测试库的答案.

java junit unit-testing parameterized-unit-test junit5

20
推荐指数
3
解决办法
1189
查看次数

JUnit5在类级别参数化测试

是否可以使用JUnit5的参数化新功能来运行测试类来接收测试参数而不是在方法级别进行测试?

使用JUnit 4,@RunWith(Parameterized::class)可以使用诸如plus继承之类的运行器将参数数组传递给子类,但我不确定是否可以使用新的JUnit 5 api来实现等效的东西.

java parameterized-unit-test kotlin junit5

16
推荐指数
2
解决办法
1806
查看次数