Unity
UniRx
More than 1 year has passed since last update.


背景

前回 作りながら理解する UniRx という記事を書きました。

Rxの基本の仕組みを解説したのですが、それからもう一歩次にUniRxの理解を深めてくれるような何かがないかなと考えていました。

もう少し踏み入って実際のUniRxの関数など知ってもらえる手段として、Quiz形式にしてみたらどうかと思い立って作ってみました。


UniRx Quizとは?

nunitで書かれたQuizTestのFIXMEの該当箇所を変更することで、答えていくQuizです。

quiz.png

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]);
}

みたいな感じの問題がひたすら書かれています。


解きかた

レポジトリ

- https://github.com/mattak/UniRxQuiz

手順:



  1. UniRxQuizをcloneしてそのまま開くか、unitypackageをDLしてimportします.

  2. Unitテストを実行します. (Window > Test Runner > Run All)

  3. QuizTest.cs のFIXMEを修正して、testをpassするように修正します

  4. 最後に AnswerTest.cs の中身と比べて正答かどうか確かめてみてください.


その他

まずは初学者向けにということで、基本的な関数の使い方を紹介するようなQuizしか用意してないです。

なんか面白い応用的なQuizあれば、PRくれると嬉しいです!