Google の Uri 氏が web-bluetooth-mock を公開してくれました。
Just released: #WebBluetooth API Mock.
— Uri Shaked (@UriShaked) 2017年11月18日
No more excuses for not testing your code! 🤣https://t.co/LmyyKZFCKL
テストには Facebook の Testing Framework である jest が利用されています。
このモックを利用したサンプルコード。
一例として、connectToDevice() メソッドを利用して、 0xffe0 を含むデバイスをスキャンして接続するかどうかをテストします。
import { WebBluetoothMock, DeviceMock } from './web-bluetooth.mock'; describe('connectToDevice', () => { it('should connect to bluetooth device', async () => { // Setup a Mock device and register the Web Bluetooth Mock const device = new DeviceMock('Dummy-Device', [0xffe0]); global.navigator = global.navigator || {}; global.navigator.bluetooth = new WebBluetoothMock([device]); // This is a Jest specific mock, change to just `spyOn(...)` for Jasmine jest.spyOn(device.gatt, 'connect'); // Calling the method we want to be tested await connectToDevice(); // Checking if the function has been invoked. This also means // that requestDevice() has been called with a filter that matches // the device we defined above. expect(device.gatt.connect).toHaveBeenCalled(); });
他のテストパターンのコードはこちらがとても参考になります。
https://github.com/urish/muse-js/blob/master/src/muse.spec.ts
- 作者: 堤修一,松村礼央
- 出版社/メーカー: ソシム
- 発売日: 2015/03/23
- メディア: 単行本
- この商品を含むブログを見る
改訂新版JavaScript本格入門 ?モダンスタイルによる基礎から現場での応用まで
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/30
- メディア: Kindle版
- この商品を含むブログを見る
Effective JavaScript JavaScriptを使うときに知っておきたい68の冴えたやり方
- 作者: Devid Herman
- 出版社/メーカー: 翔泳社
- 発売日: 2013/04/13
- メディア: Kindle版
- この商品を含むブログ (7件) を見る