ncsで使うテストフレームワークはどれだ (5)

2024/09/23

前回の続き。

nRF Connect SDK がサポートする Testing with Unity and CMock を試す。

ncs-blinky

以前作った ncs-blinky に Unity + CMock のテストを追加する。

tests/led

ひな形

まず、テストのひな形を作る。

テスト用のプロジェクトファイルはだいたい同じようなファイルになるので、ありがちな構成を作ってから修正するのが楽だろう。
中身は空っぽだが、Unityのテストは動くくらいのファイルを作るようにした。

gist: ncs unity test template

$ ./mktest.sh led
$ cd tests/led
$ west build -b native_sim_64 -t run

第1弾

まずは力業でテストを通す。

files

動く。

image

第2弾

少し見直そう。

commit

AnyArgsは楽なのだが、なるべく評価した方がよいかも。
ただ、本体のコードを見てテストコードにも書くくらいだったらいらないような気もする。 どうなんだろうね。 場合によりけりか。

終わりに

GPIO くらいだったらそこまで面倒ではなかった。
ある程度はロジックがあって Zephyr とか BLE の API を呼び出すようなコードでもテストを作ってみないと分からんな。