Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何创建仅在一个或多个类中运行指定测试的Android测试套件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以在测试套件中组织测试,在 Android中使用JUnit吗?我发现几乎所有的例子都不工作,我想知道我没有得到什么.

我已经提供了一个包含几个测试的AndroidTESTCase类的小例子,以及包含程序包中所有测试的测试套件.这样做(显然):

包含测试的测试用例类:

public class ArithmeticsTest extends AndroidTESTCase {
    someClass sctest;

    protected void setUp () throws Exception {
        sctest = new someClass();       
        super.setUp();
    }


    /* Test the someClass.addnumbers (int,int) method: */
    public void testAddnumbers () {
        assertEquals(9,sctest.addnumbers(3,6));
    }

    /* Test the someClass.addnumbers (int,int) method: */
    public void testSubtractnumbers () {
        assertEquals(2,sctest.subtractnumbers(6,4));
    }


    protected void tearDown () throws Exception {
        super.tearDown();
    }
}

测试套件类包括包中的所有测试:

import junit.framework.Test;
import android.test.suitebuilder.TestSuiteBuilder;

public class ProjectTestSuite_AllTests {
    public static Test suite () {
        return new TestSuiteBuilder(ProjectTestSuite_AllTests.class)
            .includeAllPackagesUnderHere()
            .build();
    }
}

如上所述,这个工作.然而,如果我有很多测试用例,这两个类都有几个测试,其他类和其他测试(组织不同类型的测试,imo是有意义的),那么我想创建测试套件,包括具体的测试课程等,所以他们可以专门运行.

我已经看到了这个例子,但我没有任何人上班.有没有人有个很好的例子?也就是说,一个新的测试套件,其中包括来自一个或多个测试用例类的特定测试用例.

更新:

以下两个示例工作:

运行包中的所有测试:

public static Test suite () {
    return new TestSuiteBuilder(ProjectTestSuite_AllTests.class)
    .includeAllPackagesUnderHere()
    .build();
}

在特定类测试(AndroidTESTCase类)中运行所有测试:

public static Test suite () {
    Class TESTClass = ArithmeticsTests.class;
    TestSuite suite = new TestSuite(TESTClass);

    return suite;
}

但是,这不工作:

public static Test suite () {
    TestSuite suite= new TestSuite();
    suite.addTest(new ArithmeticsTest("testAddnumbers"));
    suite.addTest(new ArithmeticsTest("testSubtractnumbers"));

    return suite;
}

最后(非工作)的例子来自developer.android.com.尝试这个时遇到的错误是:

这是奇怪的,因为我不想访问构造函数,而是在测试用例类(testAddnumbers)中命名一个特定的测试方法.

1月11日更新

这是测试用例类,包含几个测试:

public class ArithmeticsTests extends AndroidTESTCase {
    someClass sctest;

    protected void setUp () throws Exception {
        sctest = new someClass();
        super.setUp();
    }

    public void testAddnumbers () {
        assertEquals(9,6));
    }

    public void testSubtractnumbers () {
        assertEquals(2,4));
    }

    protected void tearDown () throws Exception {
        super.tearDown();
    }
}

这里是我试图包含(f.ex.)的测试套件类在上面的类中的一个测试:

public class ProjectTestSuite_SomeTests {

    public static Test suite () {
        // This does not work:
        TestSuite suite= new TestSuite();
        suite.addTest(new ArithmeticsTests("testAddnumbers"));
        return suite;
    }
}

以上的addTest行会导致此错误

这是我在这个例子中尝试测试的someClass文件

public class someClass {

    int     classInt;
    String  classString;
    Item    item;

    public someClass () {}

    public someClass (int ci,String cs) {
        this.classInt    = ci;
        this.classString = cs;
    }

    public int addnumbers (int num1,int num2) {
        return num1+num2;
    }

    public int subtractnumbers (int num1,int num2) {
        return num1-num2;
    }
}

解决方法

@H_262_55@ AFAIK的问题是AndroidTESTCase类只有一个构造函数 – AndroidTESTCase()

使用字符串指定测试用例仅由JUnit的TESTCase类支持,但不支持AndroidTESTCase().这就是为什么你正在面对这个问题.

大佬总结

以上是大佬教程为你收集整理的如何创建仅在一个或多个类中运行指定测试的Android测试套件?全部内容,希望文章能够帮你解决如何创建仅在一个或多个类中运行指定测试的Android测试套件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。