您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
Junit的多线程测试
作者:网络转载 发布时间:[ 2012/11/29 15:01:47 ] 推荐标签:

/**在你的测试用例中使用MultiThreadedTestRunner,   
* MTTR需要一个TestRunnable对象做为它的构造器的参数

     * MTTR创建以后,调用runTestRunnables()方法来运行它
     */
    public void testExampleThread()
        throws Throwable {

        //实例化 TestRunnable 类
        TestRunnable tr1, tr2, tr3;
        tr1 = new DelayedHello("1");
        tr2 = new DelayedHello("2");
        tr3 = new DelayedHello("3");

        //把实例传递给 MTTR
        TestRunnable[] trs = {tr1, tr2, tr3};
        MultiThreadedTestRunner mttr =
            new MultiThreadedTestRunner(trs);
        //执行MTTR和线程
        mttr.runTestRunnables();
    }
    /**
     * 标准的 main() 和 suite() 方法
     */
    public static void main (String[] args) {
        String[] name =
            { ExampleTest.class.getName() };
        junit.textui.TestRunner.main(name);
    }
    public static Test suite() {
        return new TestSuite(ExampleTest.class);
    }
}
上面的例子中,每个线程将会在你发出测试指令后,在2到5秒之间向你返回它们的输出,它们不仅按时间显示,而且是以一个随机的顺序来显示。这个单元测试只有所有的线程都执行完成后才会结束。由于外加了MultiThreadedTestRunner,所以Junit继续执行测试用例之前,必须耐心的等待TestRunnables执行完成它们的工作,做为可选项,你可以为MultiThreadedTestRunner的执行分配大的执行时间(这样以便你脱离线程,而不挂起测试)。
要编译运行ExampleTest,你必须在你的CLASSPATH环境变量中指定junit.jar和GroboUtils-2-core.jar两个类库的位置。这样你会看到每人线程以随机的顺序来输出 “Delayed Hedllo World”
结束语
写一个多线程的单元测试不用感到苦脑,GroboUtils类库为编写多线程的单元测试提供了一个清晰简单的API接口,通过把这个类库添加到你的工具包中,你可以把单元测试扩展到模拟繁重的WEB网络通讯和并发的数据库处理,以及对你的同步方法进行压力测试。

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd