测试可观察的dengan RxTest

Setelah merefresh bagaimana caranya memakai RxSwift untuk keperluan开发iOS,supaya tidak lupa dan空白。 Saya sekalian aja belajar bagaimana melakukan testing可观察的memakai RxTest。

在UICollectionView中无限滚动UICollectionView UIAPIView的内容,并在API API dari Pokeapi中显示。 Jadi,Yang akan di test,apakah data pada集合视图akan bertambah sebanyak 20项目,setiap menyentuh akhir dari UICollectionView 。 Misalkan saya punya视图模型sederhana seperti ini

拜克拉(Baiklah),北穆莱(kula mulai)buat kasus ujinya dulu,塞德拉(sederhana saja)…

 事件:-(0,())-(100,())-(150,())-(200,())-(250,())--->预期结果:5 * 20项= 100项 

好吧,bagaimana langkah menulis testnya吗?

  1. Buat 测试 调度程序 Nya Terlebih Dahulu。 Ini digunakan untuk melakukan散文simulasi 订阅了 可观察到的 keluaran。
  2. Buat 模拟可观察的 yang akan digunakan untuk测试。 模拟可观察的 inilah sebagai输入pada视图模型。
  3. Lalu lakukan 断言 terhadap hasil transformasi dari视图模型terhadap kasus uji yang kita punya。

Sehingga 测试赛跑者 yang berhasil ditulis sebagai berikut

Baik,每一个饱和语为akan saya jelaskan satu。

Bagian 1 itu bagaimana caranya kita buat Scheduler Nya。 Ini digunakan untuk menjalankan simulasi untuk 订阅了 可观察到的 keluaran dari视图模型。

Bagian 2 itu杨saya sebut diawal sebagai 模拟可观察到的事件。 Isinya adalah rangkaian 事件 yang akan digunakan pada 可观察到 ,seperti next(element)completed() ,atau error(error) 。 Pada TestableObservable ini,ada 2参数untuk next ,参数pertama adalah 虚拟时间 kapan dia melakukan 发射项 pada可观察,参数kedua ya项yang akan di 发射 ke可观察。 Dan dari 模拟可观察事件 Tadi Kita Akan buat 模拟可观察 Nya。

Bagian 3,kita buat 视图modelnya,lalu模拟可观察的tadi jadikan输入pada视图模型untuk ditransformasikan。

Bagian 4,kita buat 观察者 Yang akan menerima nilai dari视图模型sete​​lah proses transformasi。 帕达萨尼(Pada saat ini), scheduler harus dijalankan supaya bisa merekam 事件 hasil transformasi。

Terakhir di Bagian 5 adalah proses断言,untuk memastikan apakah rangkaian 事件 Pada观察者yang dibuat di bagian 4 sama seperti dengan rangkaian 事件 yang dibuat di Bagian 5。

Penutup

XCTest dan RxTest berguna untuk melakukan测试kode程序yang menggunakan RxSwift。 Tulisan ini juga sebagai catatan pribadi saya untuk memulai memahami konsep bagaimanalangkah²melakukan测试kode yang memanfaatkan RxSwift。

Repo Kode Lengkap diatas bisa diakses disini🙂


推荐人

https://github.com/ReactiveX/RxSwift/blob/master/Documentation/UnitTests.md