-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CWordParseのテストを追加する #1488
CWordParseのテストを追加する #1488
Conversation
MinGW失敗してますね。 |
✅ Build sakura 1.0.3299 completed (commit cb123df245 by @k-kagari) |
いったんDraftにします。 Lines 74 to 76 in edbb86c
原因これかな?
-fwide-exec-charset=utf-16le で通りそう? デフォルトでUTF-32 or UTF-16だと書いてあるのに指定が必要というのも不可解ではありますが。 |
f89b17d
to
4857ae6
Compare
✅ Build sakura 1.0.3300 completed (commit 71094ea207 by @k-kagari) |
✅ Build sakura 1.0.3301 completed (commit a754bfd45a by @k-kagari) |
✅ Build sakura 1.0.3302 completed (commit add012aba7 by @k-kagari) |
MinGW通りました。Draft外します。 |
前に自分が指摘されて「アフォか!」と思った趣旨の指摘をあえて書きます。 本体を変更しなくても実現できるテストとそうでないテストを区別できるようにコミットを分けて欲しいです。 CWordParseを「テスト可能にするために変更している」わけですが、 例によって CodeFactor は「複雑度が高い」とかゆうクソ分かりづらい指摘のみなのでスルーでよいと思います。 |
c43b3ea
to
a7845db
Compare
コミットを分割しました。
個人的には関数を分割しつつテストを追加していく作業に手を出したい気持ちがあるのですが、「この関数分割したぜ!」という内容のPRをレビューする側の負担を考えるとそれもどうかなあ…?と思っているところです。 |
✅ Build sakura 1.0.3303 completed (commit 7c5b56402d by @k-kagari) |
✅ Build sakura 1.0.3307 completed (commit 943b9c76cf by @k-kagari) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
問題なしで良いと思います。
一応、SonarCloudのテストリポジトリで解析してみました。
問題なし、で片づけてよい結果だと思います。
sakura-editor/SakuraSonarTest#20
レビューありがとうございます。 |
PR の目的
CWordParse
の関数群に対するテストを追加します。カテゴリ
PR の背景
#1470 で変更を加えた
CWordParse
に対してテストを追加するPRです。PR のメリット
CWordParse::WhatKindOfChar
やCWordParse::WhatKindOfTwoChars
が何を判定しているかがテストコードに明文化されます。PR のデメリット (トレードオフとかあれば)
CWordParse::WhereCurrentWord_2
の引数が増え、呼び出しが煩雑になります。仕様・動作説明
CWordParse::WhereCurrentWord_2
が共有データに依存していたため、データを関数の引数として受け取るよう変更し、呼び出し側に依存関係を移動しています。単純に移動しただけですからバグの混入は考えづらいのですが、呼び出しているコードパスが関係する機能について念のための手動テストが必要になるかもしれません。CWordParse::WhatKindOfChar
のテスト対象は条件式で判定している既知のコードポイントに限定しています。不明なコードポイントの文字幅をGDIに問い合わせるコードパスが存在しますが、テスト対象に含めるとグローバル変数であるフォントキャッシュの初期化が必要になること、やることが単体テストからかけ離れていくことを理由として無視しています。PR の影響範囲
CWordParse::WhereCurrentWord_2
内で参照していた[共通設定]→[編集]→[改行コードNEL, LS, PSを有効にする]フラグを関数外に移動したため、各機能に関連するコードが壊れている可能性があります。(他にもあるかも…。上記が代表例だと思いますが)
テスト内容
上記の各機能の挙動に異常がないことを確認します。
関連 issue, PR
#1470 コンボボックスに Ctrl+Backspace による単語削除機能を追加する