背景
前回 作りながら理解する UniRx という記事を書きました。
Rxの基本の仕組みを解説したのですが、それからもう一歩次にUniRxの理解を深めてくれるような何かがないかなと考えていました。
もう少し踏み入って実際のUniRxの関数など知ってもらえる手段として、Quiz形式にしてみたらどうかと思い立って作ってみました。
UniRx Quizとは?
nunitで書かれたQuizTestのFIXMEの該当箇所を変更することで、答えていくQuizです。
QuizTest.csにクイズが、AnswerTest.csに答えが載っています.
すべてのQuizTestをpassする頃には、一人前のRx使いになれるでしょう(たぶん).
Q1: 1を出力する Cold Observable をつくれ
[Test]
public void Q1()
{
var observer = new TestObserver<int>();
// Q. 1を出力する Cold Observable をつくれ
var observable = (IObservable<int>) null; // FIXME
observable.Subscribe(observer);
// CHECK
Assert.AreEqual(1, observer.CountNext);
Assert.AreEqual(1, observer.NextList[0]);
}
みたいな感じの問題がひたすら書かれています。
解きかた
レポジトリ
手順:
- UniRxQuizをcloneしてそのまま開くか、unitypackageをDLしてimportします.
- Unitテストを実行します. (Window > Test Runner > Run All)
- QuizTest.cs のFIXMEを修正して、testをpassするように修正します
- 最後に AnswerTest.cs の中身と比べて正答かどうか確かめてみてください.
その他
まずは初学者向けにということで、基本的な関数の使い方を紹介するようなQuizしか用意してないです。
なんか面白い応用的なQuizあれば、PRくれると嬉しいです!