JUnit5でコルーチンの例外発生のテストを書く
@Test fun test_exception() { assertThrows(IllegalArgumentException::class.java) { runBlocking { testMethod() } } }
assertThrowsにラムダを渡すことで例外発生のテストを書くことが出来る
aarに含まれるsoが見つからない
これが正しい
artifacts.add("default", file('libname.aar'))
こんな感じに拡張子名を忘れるとライブラリが見つからないとエラーになる
artifacts.add("default", file('libname'))
pandasでステップ状のグラフを書く
import pandas as pd df = pd.DataFrame([1, 3 , 5]) df.plot(marker='.') df.plot(marker='x', drawstyle='steps-post') # drawstyleで指定
drawstyleで steps-post
を指定するとステップ状になる
指定なしの場合
指定ありの場合
格安HDMIキャプチャでRX100M3をWebカメラ化する
mockkでメソッド呼び出しが行われていないことを確認する
mockkのMockには wasNot Called
が用意されているのでメソッドにも使えるかと思ってたけども実は違っていたのでメモ
// これは間違い verify { mock.method() wasNot Called } // コレが正しい verify(exactly = 0) { mock.method() }
じゃあ wasNot Called
はいつ使うのかというと以下のようにMock全体に対して呼び出しが行われていないことを確認する時に使う。
verify { mock wasNot Called }
参考: Cannot verify a mocked class's method was not called. · Issue #349 · mockk/mockk · GitHub
mockkのreturnsとanswersの違い
every { mock.time } returns System.currentTimeMillis() val a1 = mock.time // なんか処理 val b1 = mock.time
every { mock.time } answers { System.currentTimeMillis() } val a2 = mock.time // なんか処理 val b2 = mock.time
で挙動が違っていて、 returns
だと宣言時の時刻で固定されて、 answers
の場合は呼び出しのたびに評価される。
なので、a1 = b1となり、 a2 != b2 となる。
NotionでOKRと日頃のタスクをいい感じに結びつける
notionでOKRと日頃のタスクをいい感じに結びつけてちゃんと成果出していこうとするためのページを作ったのでメモ
仕事用ページの作成
まずサイドバーで仕事用ページとかを作る
日頃のタスクのメモページの作成
次に↓のテンプレートを追加する。これでデイリーのタスクのメモを残す。 コピーを作ったら仕事用ページ配下に移動する。
フィルタの設定を追加する
Daily用のテーブルを表示するためのViewを追加
Filterから
Add Filterを選んで
これでDailyのViewを選べば今日の日付のタスクが見れるようになる
OKR用ページの作成
次にOKR用のページ作り。 サイドバーでページの追加を選ぶ
タイトルは OKR
で種類をDATABASEのTableにする
TABLEの列はこんな感じにしとく。 ObjectはSelect、自信度はNumberを設定、TaskはRelationを選ぶ。
このRelationがミソで、Relationを選ぶと↓のように接続するDatabaseを選べる。 そこで先程作成した日頃のタスク用のページを選択する
そうすると日頃のタスク用ページの方が以下のようになる
ここでRelated to OKRをクリックすると、KRを選ぶことが出来るようになる。1個選択すると項目が消えるので、複数設定したい場合は再度Search for...の部分をクリックすると選べるようになる
紐付けした結果はこんな感じ
もちろんOKR側からも紐付けがされている
ここで日頃のタスクがOKRと全然結びつけが出来ていなければ何か間違った状態になっていることが見えてくるので、対策した方が良さそうな状態。
仕事用ページで一覧化
仕事用ページを開いて、↓のようにinline化することで1つのページでOKRと今日のタスクが見えるように出来る。
これも結構重要でひと目見てOKRとタスクがわかる状態になってたほうがOKRを普段から見ることになるので意識して行動が出来るようになる。 他にもToDoリストもInline化できるのでカンバンやカレンダーなども一緒に見れるようにすることでよりOKRを普段から見るものにできる。
効果
こうすることで普段のタスクがOKRに明確に紐付けが出来るようになり、OKRを達成しようとするモチベーションを上げることができそう