显示带有标签的帖子 朱尼特 . 显示所有帖子
显示带有标签的帖子 朱尼特 . 显示所有帖子

2016年9月12日,星期一

JUnit类别

JUnit类别仅适用于JUnit 4.8及更高版本。在此java界面用于创建不同的类别,并在不同的类别中添加测试用例。这使您可以按不同类别运行测试用例。

每当我们创建自动化框架时。我们编写所有测试用例 涵盖了整个应用程序,但是在执行时,我们意识到我们希望在功能测试期间运行一些测试用例,在用户验收测试期间运行一些测试用例,在生产发布期间运行一些测试用例,因此在这种情况下,您可以对测试用例进行分类并以每个类别。

让我们来看一个JUnit类别的示例,如下所示-



public interface FastTests 
{ 
/* category created */
}

public interface SlowTests
 {
 /* category created */
}

public class A {
         @测试 
        public void a() {
                fail();
        }

        @Category(Feature1Tests.class)
         @测试 
        public void b() {
        }
}

@Category({ Feature1Tests.class, Feature2Tests.class })
public class B {
         @测试 
        public void c() {
        }
}

@RunWith(Categories.class)
@IncludeCategory(Feature1Tests.class)
@SuiteClasses({ A.class, B.class })
// Note that Categories is a kind of Suite
public class Feature1TestSuite {
        // Will run A.b  和  B.c, but not A.a
}

@RunWith(Categories.class)
@IncludeCategory(Feature1Tests.class)
@ExcludeCategory(Feature2Tests.class)
@SuiteClasses({ A.class, B.class })
// Note that Categories is a kind of Suite
public class Feature1TestSuite {
        // Will run A.b, but not A.a or B.c
}

朱尼特 参数化测试

朱尼特 Testing框架允许我们在out Test Class中使用Parameters。要编写参数化测试用例,测试类应仅包含一个测试用例,我们可以按照下面的示例中的说明为其提供多个参数。

通知特定类作为参数化测试添加注释 
@RunWith(Parameterized.class) 

此类需要一个带有@Parameters批注的静态方法。此方法生成数组的集合,集合中的每个项目都称为数组。我们还可以在公共字段上使用@Parameter批注,并在测试中注入测试值。

让我们看下面的示例,以了解如何使用参数化Junit测试  -


import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class ParameterizedTestUsingConstructor {

    private int num1;
    private int num2;

    public ParameterizedTestUsingConstructor(int p1, int p2) {
        num1 = p1;
        num2 = p2;
    }

    // creates the test data
    @Parameters
    public static Collection<Object[]> data() {
        Object[][] data = new Object[][] { { 1 , 2 }, { 5, 3 }, { 121, 4 } };
        return Arrays.asList(data);
    }


     @测试 
    public void testMultiplyException() {
        MyClass tester = new MyClass();
        assertEquals("Result", num1 + num2, tester.add(num1, num2));
    }


    // class to be tested
    class MyClass {
        public int add(int i, int j) {
            return i + j;
        }
    }

}

测试用例根据配置的数据集执行3次。



使用Maven安装Junit

正如我们已经看到的,我们现在可以将Junit与任何Maven项目一起使用,让我们了解如何在Maven中使用它。 

考虑您有一个鬃毛项目。然后打开项目的Pom.xml文件并复制以下代码。


<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

复制代码后,您可以转到命令行并导航到项目目录
执行命令  MVN清洁mvn编译 并检查构建是否成功,这意味着您一切顺利。 

这篇博客文章适用于使用Maven项目的人们。因此,我没有添加什么是Maven以及如何安装Maven的详细信息。

朱尼特 测试服和测试执行命令


如果您有大量的测试课程,并且想要合并然后进行管理,则可以创建一个测试服。执行测试用例意味着按照指定的顺序在Suite中执行所有测试类。

以下示例给出了Suit类的概述。它包含3个测试类FirstTestClass和SecondTestClass。您可以根据需要添加任意多个测试类。

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({
                FirstTestClass.class,
                SecondTestClass.class,
                ThirdTestClass.class })

public class AllTests {

}   

类内的测试执行顺序-Junit假定测试用例写在类内并且是独立的,并且可以随机执行。 但是,如果必须在类中定义Junit测试用例的流程,则可以使用@FixMethodOrder批注。考虑下面带有类MyTests并带有测试用例BTest(),ATest()和CTest()的示例,我们可以按照方法名称的字母顺序升序定义执行顺序。

在以下示例中,执行顺序为  -
1. ATest()
2. BTest()
3. CTest()



@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyTests {

 @测试 
public void BTest()
{
}

 @测试 
public void ATest()
{
}

 @测试 
public void CTest()
{
}

}

朱尼特 声明

众所周知,没有断言的测试用例是不完整的。断言意味着检查预期结果是否与实际结果相匹配,这始终是任何测试用例的最后一步。因此,JUnit测试框架为我们提供了一种以简单有效的方式自动化声明的方法。

朱尼特 为Assert Class提供了一些assert方法,我们可以使用它们编写自己的assert语句,它允许我们指定带有预期结果和实际结果的错误消息,以便我们了解测试用例失败的原因。

Assert语句将实际结果与Expected结果进行比较,如果比较失败,则抛出AssertionException。

让我们看一些常用的断言示例  -

1. assertTrue([message,]布尔条件) - 检查布尔条件是否为真。
2. assertFalse([message,]布尔条件) - 检查布尔条件是否为假。
3. assertEquals([消息,]预期的,实际的) - 测试两个值是否相同。注意:对于数组,请检查引用而不是数组的内容。 
4. assertEquals([[message,]预期,实际,公差) - 测试float或double值是否匹配。公差是必须相同的小数位数。
4. assertNull([message,] object) - 检查对象是否为空。 
 
 
每当您开始编写测试用例时,您都可以通过键入Assert。(cltr + space)进行更多的探索,您会看到Assert类提供的方法的精华,您可以使用它们来使您的测试用例变得越来越有效。
 
 如果您有任何疑问,可以将其放在注释中。











2016年9月10日,星期六

什么是Junit注释?

朱尼特 批注对于定义执行流程和确定测试方法非常有用。这些注释与类和方法一起使用,它为方法和类赋予了附加的含义,指示其行为是执行流。例如,@ Test批注可与任何Java方法一起使用,现在java方法被标识为测试用例,它将作为测试用例执行,而与普通的Java方法不同。同样,很少有基本的Junit批注,这些批注非常重要,并且被Automation Tester广泛使用。

考虑下面的示例代码示例- 
下面的代码框架使用了Basic 朱尼特 注释。在下面的课程中,共有6种方法,其中2种是测试用例。让我们详细了解每个注释。


Public void TestClass
{

@课前
public void startUp()
{
 your code
}

 @之前 
public void setUpTest()
{
Your Code
}

 @测试 
public void firstTest()
{
Your Code
}

 @测试 
public void secondTest()
{
Your Code
}

 @后 
public void teatDownTest()
{
Your Code
}

@下课以后
public void End()
{
Your Code
}

}


@课前  -在以上示例中,此注释用于 启动() 方法表明,类一旦开始执行,将首先执行带有@BeforeClass Annotation的方法。您要先执行任何逻辑,然后再执行该类中的任何其他方法和测试用例,然后将该逻辑添加到 启动() @课前 Annotation的方法。

@之前 -任何标有的方法 @Before注释将在每个测试用例执行之前执行一次。这表示 setUpTest() 以上执行中的方法将执行两次 firstTest()secondTest()。您想要在每个测试用例之前执行的任何逻辑,例如启动应用程序等,我们都需要使用@Before Annotation编写。

@测试 - 该注释定义了执行 firstTest()secondTest() 方法作为测试用例,而不是Java类中的方法。

@后 -任何标有的方法 @After注释将在每个之后执行一次 测试用例执行。这表示 tearDownTest() 上面执行中的方法 将在之后执行两次 firstTest()secondTest()。任何逻辑 您想要在每个测试用例(例如关闭应用程序等)之后执行的操作,我们需要使用@After Annotation编写它。
@下课以后 -在以上示例中,此注释用于 结束() 方法 表示一旦类中的所有测试用例完成执行该方法, @AfterClass注释将执行。您想要的任何逻辑 在所有测试用例执行完毕后首先执行 类,然后在该逻辑中添加 结束() @下课以后的方法 Annotation.


根据上述示例执行的完整流程-

1. startUp()
2. setUpTest()
3. firstTest()
4. teardownTest()
5. setUpTest()
6. secondTest()
7. tearDownTest()
8. End()


如何使用Android Studio配置Junit

我们已经了解了如何在Android Studio中安装和创建项目。在开始自动化测试之前,我们需要使用Android Studio配置Junit Testing框架。 朱尼特 测试框架可帮助我们定义执行流程。让我们进一步了解Junit。

什么是Junit?

朱尼特 与Java编程语言一起被广泛使用的测试框架。您可以将此自动化框架用于单元测试和UI测试,它可以帮助我们定义带有不同注释的代码的执行流程。 朱尼特 建立在“先测试然后编码”的思想之上,这有助于我们提高测试用例的生产率和代码的稳定性。

朱尼特 测试的重要功能- 

1.这是一个开放源代码测试框架,允许用户有效地编写和运行测试用例。
2.提供各种类型的注释以标识测试方法。
3.提供不同类型的断言 验证测试用例执行的结果。
4.它还为测试运行人员提供了有效运行测试的方法。
5.非常简单,因此可以节省时间。
6.它提供了以测试服形式组织测试用例的方法。
7.它以简单,优雅的方式给出测试用例结果。
8.您可以将Jnuit与Eclipse,Android Studio,Maven集成& Ant

朱尼特 与Android Studio

1.创建一个新的Android Studio项目或打开您现有的项目。
2.转到应用-> Build.gradle。



3.在文件中,添加代码行,如下面的屏幕快照所示。


4.点击 同步 .


5.收到Buid成功消息后,即可使用Junit设置。

2016年3月15日星期二

使用Eclipse配置JUnit测试框架

大家好,这将非常简短。我们将配置我们的Eclipse项目,以使用Junit框架编写和运行我们的测试用例。 朱尼特 是非常常用的测试框架,如果您不想使用Junit,那么也可以使用TestNG框架。在本文中,我们将重点关注Junit。

如果执行以下步骤,只需2分钟即可完成配置Junit的工作-
1.右键单击Eclipse中的项目。
2.点击 属性-> Build Path -> Add Libraries


3.选择 朱尼特 然后点击 下一个


4.选择 朱尼特 4 然后点击