-
Notifications
You must be signed in to change notification settings - Fork 113
Debug_Mockの機能拡張(高リスク接触等) #179
Comments
はじめまして、tatsuです。GW頃からcocoaコードを見始めて色々と試していた初学者です。 本提案と少しズレるかもしれませんが、Device_Mockのデフォルト値を接触有りにした方がプロジェクト参加者には良いと思います。 私の考える解決策としては、以下の2つを修正することです。
また、「陽性情報の登録機能」は以下の問題で実行完了しません。
cocoa/Covid19Radar/Covid19Radar/Services/ExposureNotificationHandler.cs Lines 389 to 393 in b147fbb
加えて、iOSシミュレータではSecureStorageにアクセスできず(※)、接触記録をストレージに保存することができないため、接触確認周りのView遷移をテストできません。 Apple開発環境を持っている方には問題ないと思われますが、そこまでせずとも利用できるようにSecureStorageMockを追加させていただきたいと思います(デフォルト無効)。 ※Secure Storageにアクセスするにはプロビジョニングが必要だが、Xamarin.iOS アプリの無料プロビジョニングによると、配布済みのアプリでは無料プロビジョニングができない。Apple Developer Program(有償)に参加すれば可能だと思われる(未検証)。Androidシミュレータではこの問題は発生しない。 以上を実装したサンプルコードが以下になります(Device Verificationの提案は含んでいません)。 上記に対応することで、DeviceMockで一通りのVeiw遷移をテストできるのではないかと思います。 |
はじめまして。参入は私もGW前ぐらいです。おっしゃるようにすると陽性確認でると思いますが、バックグラウンドでの接触通知が COCOA から来ましたか?私はまだ成功していません。
デフォルト値については、 UnitTest が関与するかもしれないので(確認はしていません)、私は変えていません。それより良い案を今エンコードしています。 Debug_Mock では settings.json をほとんど使っていないのですが、これを使ってデフォルト値を設定する案です。
こうしておくと一般ユーザーには、settings.json を変更して Debug_Mock ビルドしてもらえば複数の状況をテストしてもらえることになります。TeKダウンロード系は、 CdnUrlBaseで同様な形です。 一方で、「陽性情報の登録機能」は、手を出していません。また、iOS用 secureStrageMock は、ぜひ別 issue で立てられたらどうでしょうか?少なくとも私は iOS の環境がありません。 |
コメントありがとうございます。 接触通知はOSの通知のことですかね?私はDebug_Mockでしか確認していないので、接触通知については確認していません。 Debug_Mockで以下を無効にしてNative側の実装を動かしているかもですが、EN APIを呼び出すには許可が必要なので、通知を受け取るのは無理なのではないかと思います。 cocoa/Covid19Radar/Covid19Radar/App.xaml.cs Lines 78 to 85 in b147fbb
TestNativeImplementationをnewしているのはApp.xaml.cs内だけという認識ですが、私の見逃しもあるかもしれません。 接触情報等をファイルで記載して読み込むのは良い案だと思います。ただ、既存のパラメータを異なる用途で利用するのは後から見た時に混乱しそうですので、別ファイルに分けて記載した方が良いと思います。
提案内容とは異なるので分離した方が良いかもですね。
|
iOSシミュレーターでSecureStorageが利用できない(SecureStorageMockの作成) みたいな感じでしょうか。
こちらまだぼくがちゃんと理解できてないので詳しく教えてください。 現時点で「陽性登録を成功させるパターンをテストしたい」という要望と、「接触通知を表示させてテストしたい」という要望の二つあるように思います。 「陽性情報の登録に関する問題」は、後者に関係したIssueになりそうでしょうか。 |
コメントありがとうございます。 SecureStorageに関しては後でissue発行します。 |
情報ありがとうございます。(通知を楽しみにしていたので残念)
もし、PR が通ったら、ドキュメントも記載したいです(Wikiかな?)。順にテストしていくと沢山接触履歴が出て楽しめて、かつ、COCOAの機能がAPIによる接触確認とTEKダウンロードの二つにある事が、わかってもらえるようなものが理想です。 |
i-maruyama@1847252 にコミットしています。(こういう表示のさせ方できるのを知りませんでした) このコミットと、#178 を合わせていただいて、
とすると、FetchExposureKeyAsync するたびに、陽性者との接触が増えていきます。 ちょっと、setting.json の文字列指定の仕方と、事前データセットについては、議論の余地があると思っています。 今は、デフォルト値から単に1を追記すればよいように
という文字列に変更したいと思っています。 EN 停止によってリアルタイムに接触確認結果を変更するのは、今は実装していません。これをするなら、 DebugPage にボタンを出現させればよい、という考えになりました。もしそうするなら、今の DebugPage の PR が決着してからにしたいと思います。 |
https://github.com/tatsu-jp/cocoa/commit/1e189eb4a4a7ee99d76ec23849bbe805341de587 も拝見しまして、だいたいやりたいことは包含されていると思うのですが、
は、理解できておらず、取りこぼしています。 |
プロジェクト参加者がDebug_Mockの制限事項を理解して、Debug_Mockで各種テストを簡単にできるようになると良いですね。 陽性者登録に関しては、以下のHttpDataService.PutSelfExposureKeysAsync(selfDiag)で実行します。 ステータス処理を見ていただくと分かると思いますが、"OK"はUnexpected statusに該当します(意図的なのかもしれませんが)。 cocoa/Covid19Radar/Covid19Radar/Services/ExposureNotificationHandler.cs Lines 295 to 343 in b147fbb
|
おかげで理解できました。ありがとうございます。 デバッグという意味からすると、ステータスコードを全部網羅出来たらいいのかもしれませんね。 ApiUrlBase は、PostRegisterUserAsync の初期登録(url/register)とPutSelfExposureKeysAsyncの陽性登録(url/v2/diagnosis)で使われていますので、
こんな感じで設定できるようにしようと思います。
|
とりあえず、上記の方針で作りました。 問題の以下の部分ですが、 cocoa/Covid19Radar/Covid19Radar/Services/ExposureNotificationHandler.cs Lines 389 to 393 in b147fbb
プリプロセッサで乗り切っています。
コードレベルで問題ないことは明らかですが、許されるでしょうか?(ユニットテストは、まだ分かりません) b4e26e2 |
…is modified by using #if USE_MOCK) cocoa-mhlw#179 (comment)
プロダクトのコードに手を入れないという意味で、デバイス確認については ちょうど cocoa/Covid19Radar/Covid19Radar/App.xaml.cs Lines 174 to 180 in 872cc86
|
IDeviceVerifier は App.xaml.cs には登録されておらず、同じような枠組みでは無理そうでした。 IDeviceVerifierはデバイス依存で、以下のファイルを参照させる枠組みのようです(理解してません)。
例えば、以下の部分に #if USE_MOCK で分岐させるようなコードがあれば、まだマシかもしれませんが、私にはわかりませんでした。 cocoa/Covid19Radar/Covid19Radar/Services/IDeviceVerifier.cs Lines 19 to 22 in b147fbb
|
ありがとうございます。たしかに現状の 現状は
これはAndroidではバックグラウンドでの動作に支障を来たすことがあります(以前、Androidで一日一回再起動しなければならなかったのはこれが原因)。今はServiceLocatorという仕組みを使うようにしているので、ここも切り替えていきたいですね。 これに関しては別作業になりますからIssueを作りますね。 |
あと大規模な改変がある場合には DebugPage, Debug_Mock がバグを出す可能性もあるかもしれません。 一度 DebugPage が消えたということなので、そんなことを思いました。 |
デバッグ用の機能として、接触情報を登録することで、高リスク接触画面を表示できるようにしたので本Issueをクローズします。 |
その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?
解決策についてお書きください / Describe the solution you'd like
あなたが考える代替案についてご説明ください / Describe alternatives you've considered
その他 / Additional context
いくつかは #160 での議論の中で実験しています。まだ、バックグラウンドでの接触通知が COCOA から来るまでには至っていません。
Internal IDs:
The text was updated successfully, but these errors were encountered: