junit数据驱动测试
在本文中,我们将看到如何使用Junit进行数据驱动的测试。 为此,我将使用一个名为EasyTest的库。
我们知道,对于TestNG,它已内置了数据提供程序。 通过简单的测试,我们可以使用Junit进行数据驱动的测试。
什么是数据驱动测试?
当测试由数据驱动时,则指的是数据驱动的测试。 正式定义可以在Wiki中找到。
总之,将对您的输入数据,预期输出,配置等进行参数化定义。 因此,最后,您不需要更改测试,但是随着数据的更改,您可以增加测试数量和覆盖范围。 这意味着,您的数据将驱动您的测试能力以及质量。
当您需要处理具有不同排列和组合的大量数据时,这是一种非常好的方法。
我在哪里使用这种方法?
1.当我需要检查大量数据并将其针对数据库查询或Web api方法(REST / SOAP)输出时。
2.当我需要使用不同的数据组合来驱动相同的UI测试时。
3.当我需要将日期更改行为与配置更改隔离开来时。
我们将如何实现?
我们将通过参数化测试解决此问题。 并且此参数将从我们定义的文件中获取值(测试数据)。 这是TestNG与Junit一起缺少的部分。 我们将使用EasyTest库解决。
注意:这不是我们使用Easy test的唯一原因。 简易测试还具有许多令人印象深刻的功能。 我们将一一看到。 这是github中的简单测试项目链接。
让我们学习Example:
为了学习,我正在使用简单的计算器类( Github链接 )。 只需将两个数字相加即可得到Double类型的结果。
public class Calculator {
public Double add(Double a, Double b){
return a+b;
}
}
并且,让我们在没有Easy Test的情况下创建一个测试用例。
public class SimpleTest extends DataDrivenTest{
@Test public void testAddition(){
Assert.assertEquals(25.5,calculator.add(10.5,15.0),0.01);
}
}
我们将使用Easy Test来开发这个简单的测试用例,因此让我们开始制作一个项目。
步骤A:创建Maven项目:
1.使用您最喜欢的组ID和工件ID创建一个Maven项目。 (我使用org.automation和数据驱动)
2.包括以下依赖项。
对于Junit(我们正在使用)
dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
轻松测试
<dependency>
<groupId>org.easetech</groupId>
<artifactId>easytest-core</artifactId>
<version>1.4.0</version>
</dependency>
并且用于日志记录(这是可选的)
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
[这足以使用简单的测试内部日志记录。
]
现在,要提供数据参数,我们需要包括数据文件。 作为最佳实践,我会将所有数据都用作资源 。 因此,我需要在pom中包含资源。 因此,最终项目pom.xml看起来像这样 。
<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.automation</groupId>
<artifactId>datadriven</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--Only mandatory part : start-->
<dependency>