单元测试 网络接口测试

作者: Ad大成 | 来源:发表于2022-03-31 17:22 被阅读0次
    public class DataManagerTest {
    
        private Context mContext;
        private String TAG = DataManagerTest.class.getSimpleName();
    
        @Before
        public void setUp() throws Exception {
            mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
            initRX();
    
        }
    
        private void initRX() {
    
            //这里是核心 需要把项目中使用io 、computation调度转换为trampoline
            RxJavaPlugins.reset();
            RxJavaPlugins.setIoSchedulerHandler(new Function<Scheduler, Scheduler>() {
                @Override
                public Scheduler apply(@NonNull Scheduler scheduler) throws Exception {
                    return Schedulers.trampoline();
                }
            });
            RxAndroidPlugins.reset();
            RxAndroidPlugins.setMainThreadSchedulerHandler(new Function<Scheduler, Scheduler>() {
                @Override
                public Scheduler apply(@NonNull Scheduler scheduler) throws Exception {
                    return Schedulers.trampoline();
                }
            });
            RxAndroidPlugins.reset();
            RxJavaPlugins.setComputationSchedulerHandler(new Function<Scheduler, Scheduler>() {
                @Override
                public Scheduler apply(@NonNull Scheduler scheduler) throws Exception {
                    return Schedulers.trampoline();
                }
            });
        }
    

    RxJava调度程序的简要介绍。

    • Schedulers.io() –用于执行非CPU密集型操作,例如进行网络调用,读取磁盘/文件,数据库操作等。此操作维护一个池线程数。

    • Schedulers.newThread() –使用此功能,每次计划任务时都会创建一个新线程。通常建议不要使用调度程序,除非运行时间很长。通过newThread()创建的线程将不会被重复使用。

    • Schedulers.computation() –此计划表可用于执行CPU密集型操作,例如处理大量数据,位图处理等。使用此计划程序创建的线程数完全取决于可用的CPU内核数量。

    • Schedulers.single() –此调度程序将按添加任务的顺序执行所有任务。当需要顺序执行时可以使用它。

    • Schedulers.immediate() –该调度程序通过阻塞主线程以同步方式立即执行任务。

    • Schedulers.trampoline()–以先进先出的方式执行任务。通过将后台线程数限制为一个,所有调度的任务将一一执行。

    • Schedulers.from() –通过限制要创建的线程数,这使我们可以从执行程序创建调度程序。当线程池被占用时,任务将排队。

    然后就可以在@test 方法下 调用自己项目中的网络请求方法 测试是否跑通链路。

    相关文章

      网友评论

        本文标题:单元测试 网络接口测试

        本文链接:https://www.haomeiwen.com/subject/lgynjrtx.html