📜  Concordion-返回对象(1)

📅  最后修改于: 2023-12-03 15:00:01.073000             🧑  作者: Mango

Concordion-返回对象

Concordion是一个开源的测试框架,它的目的是帮助程序员编写更好的自动化测试。本文将介绍如何使用Concordion来返回对象并在测试中使用它。

背景

在测试过程中,通常需要使用一些对象来存储和传递测试数据。例如,对于一个简单的网站登录测试,我们需要一个存储用户名和密码的对象来进行测试。在Concordion中,我们可以使用Fixture对象来完成这个任务。

Fixture对象

Fixture是Concordion中用来存储测试数据的对象,通常我们会把它写成Java类。一个Fixture对象通常包含一些测试输入和期望输出,还可以包含一些辅助函数来处理测试数据。

让我们以一个简单的例子来说明Fixture对象的用法。假设我们正在测试一个计算器应用程序。我们想测试add函数,我们可以设计一个CalculatorFixture类,该类包含两个整数作为输入,以及期望的结果作为输出。代码如下:

package com.example.calc;

public class CalculatorFixture {

    private int a, b;
    private int expectedSum;

    public void setA(int a) {
        this.a = a;
    }

    public void setB(int b) {
        this.b = b;
    }

    public int getExpectedSum() {
        return expectedSum;
    }

    public void setExpectedSum(int expectedSum) {
        this.expectedSum = expectedSum;
    }

    public int add() {
        return a + b;
    }
}

在上面的代码中,我们定义了一个CalculatorFixture类来存储测试数据。它有三个成员变量abexpectedSum,用来存储测试输入和期望输出。它还有一个add函数,用来执行加法操作并返回结果。

测试

现在我们已经定义了我们的Fixture对象,让我们看看如何在测试中使用它。我们使用Concordion创建的测试类,以输入参数的方式传递测试数据并调用Fixture函数。我们在这个测试中会使用到ExpectedToPassExtension:

package com.example.calc;

import org.concordion.api.extension.Extensions;
import org.concordion.ext.ExpectedToPassExtension;

@Extensions(ExpectedToPassExtension.class)
public class CalculatorTest {
    
    public int add(int a, int b, CalculatorFixture fixture) {
        fixture.setA(a);
        fixture.setB(b);

        return fixture.add();
    }

    public void sumShouldBe(int expectedSum, CalculatorFixture fixture) {
        fixture.setExpectedSum(expectedSum);
    }
}

这个测试类中定义了两个函数,add和sumShouldBe。在这个测试中,我将输入参数ab传递给fixture对象,然后调用了fixture对象的add方法。输出结果将返回给测试,然后我们可以调用sumShouldBe函数来设置期望输出并进行断言。

注意,我们也在测试类中使用了Concordion的ExpectedToPassExtension,它用来帮助我们检查测试是否通过。如果测试没有通过,该扩展会在测试报告中显示一个警告。

结论

Concordion是一个功能强大的测试框架,可以帮助你轻松地编写更好的自动化测试。在这篇文章中,我们介绍了如何使用Concordion来返回对象并在测试中使用它。当您开始使用它的Fixture对象时,您将能够轻松地管理和传递测试数据,以确保您的测试套件变得更好、更可靠,并且更易于维护。