Spock v1.3でPowerMockを使う

Spock + Mockitoでユニットテストを書いているときに、finalなクラスをモック化したくなったので、PowerMockを導入。 JUnit 4で使う時と同様、 @RunWith(PowerMockRunner) しただけでは実行時にエラーがでてしまったので、SpockでPowerMockを使う方法をメモ…

Windows 10 Homeでタスクバーに天気と温度が表示されるようになったので消す

サブ機で使っているSurface Pro 7、Windows Updateをしたところ、タスクバーに天気と温度が表示されるようになった。 ホバーでニュースも出てきたりするが、使わないので消す方法をメモ。 要約 タスクバーの、何も表示されていない空き部分を右クリック メニ…

使用すべきでない用語と包括的な用語、およびホワイトボックス/ブラックボックスの置き換えは必要か調べた

社内のドキュメントを読んでいた時に、用語について引っかかった。 まず、「ホワイトリスト」と「ブラックリスト」が使われていた。 これらは前者に肯定的、後者に否定的、すなわち差別的な意味が含まれるため、「Allow List」と「Deny List」、日本語では「…

Android版Google Chrome v91で、グループ化せずにタブを開くメニューを復活させる

Android版Google Chromeがv91になり、以前の記事で使っていたフラグが使用できなくなった。 また、新しいタブを開くとグループ化される状態が復活し、リンクをロングタップしても「新しいタブをグループで開く」しか表示されず、またしてもグループ化せずに…

Javadocから作成したXMLを読み込み、クラスと突き合わせてファイル出力してみる

typescript-generatorプラグインでJavadocからTSDocを生成したのち、XMLを直接読み込んだらいろいろできそうだなと思いついた。 Enumの値のJavadocと、フィールドで設定された値を出力したい場合があり、試してみたらできたのでメモ。 やりたいこと 実装例 J…

typescript-generatorプラグインでJavadocからTSDocを生成するとWindows環境でエラーとなった

前回の続き。 JavadocからTSDoc変換をできるようにしたが、運用しているとJavadoc出力時にエラーが出る場合があったのでメモ。 Windowsでエラーが発生する 振り返り Windowsでエラーが発生する 特定の端末で「docletクラスcom.github.markusbernhardt.xmldoc…

TestCafeでPage Object Patternを試してみる

前回、TestCafeでもPage Modelという名前でPage Object Patternが使えそうなことを調べた。 ちょっと試してみようと思ったのでメモ。 環境 TestCafe v1.14.0。 インストールにはNode.js v14.16.1、およびYarn v1.22.5を使用。 Page Object Patternとは ペー…

権限設定を実装するため、Javaで使える認可ライブラリについて調べた

アカウントまたはグループに権限設定して、もろもろの属性に応じたアクセス制御を行うことになった。 システム管理者が参照・作成・更新・削除といった権限を含むロールを作成 システム管理者がトップレベルのリソース(ルートディレクトリ的なもの)を作成 シ…

毎回忘れる海外の全文検索SaaSサービスの名前「Algolia」と、ざっくり全文検索サービス紹介

GitLabの全文検索に使われていたり、Firebaseの全文検索に推奨されている、SaaSの全文検索サービスの名前を毎回忘れるのでメモ。 Algolia です。 2021/3/28現在では、公式ページの利用会社ロゴにSlackがあるなぁ。 使ってみたとかではなく、全文検索の話題の…

typescript-generatorにプリミティブ型を必須プロパティ(non null)にするオプションが追加されていた

以前書いた記事の段階では、 typescript-generator で requiredAnnotations を指定すると、プリミティブ型のフィールド/GetterについてもOptional Properties(null設定可能)扱いとなっていた。 2021年3月の更新で、プリミティブ型をまとめて必須(非null)にで…

typescript-generatorプラグインでJavadocからTSDocを生成する

以前調査したtypescript-generator、その後もパラメーター調整しながら使用しているが、困ったのがヒアドキュメント。 Java側ではJavadocでクラスやプロパティの説明を書いているが、生成したTypeScriptのインターフェース定義ファイルにはデフォルトだと出…

フィールドやメソッドに付与されたRetentionPolicy.CLASSのアノテーションをJavassistで実行時に判定する

lombok.NonNull やKotlinの val をコンパイルすると付与される org.jetbrains.annotations.NotNull など、 RetentionPolicy.CLASS のアノテーションを実行時に判定したい場面があった。 RetentionPolicy.CLASS の場合は、 RetentionPolicy.RUNTIME のように…

Android版Google Chromeで、タブがグループ化されてまとめられるのを解除する

Android版Google Chromeのタブが、最近のアップデートで勝手にグループ化されるようになった。 タップ数が増え、タブの切り替えが面倒になったので戻そうと思っても、設定にそれらしい項目がない。 ちょっと調べたところ、標準設定ではないが、戻す方法があ…

JavaのユニットテストでLocalStackを使っているときに「Cannot find docker executable」が出たときの対応方法

JavaのユニットテストでLocalStack Java Utils v0.1.22を使ってAWSサービスのテストをしていたが、Windows + Docker Desktopの環境で Cannot find docker executable. というエラーが発生するようになった。 CLIからの docker コマンドは通るのに、Javaのユ…

GradleでコンパイルするJavaのバージョンを指定するときはJavaVersion列挙型が使える

小ネタ。 GradleでJavaのコンパイルするバージョンなどを指定する際、お決まりで apply plugin: 'java' sourceCompatibility = 1.8 targetCompatibility = '1.8' のように記述するが、ここに列挙型が使える。 ただ、毎回クラス名が何だったか忘れるのでメモ…

Intellij IDEAで生成するテストクラスの接尾語を変更する

Intellij IDEAで、Javaなどのクラスから Alt + Enter でテストクラスを生成できる。 ただ、テストフレームワークにSpockを使用する場合、慣例としてテストクラスの接尾語は Spec だが、デフォルトでは接尾語が Test になってしまう。 接尾語の変更ができない…

Kotlinのchunkedのように、Javaでサイズ/要素数によるList分割をするにはGuavaかCommons Collectionsを使えばいい

Kotlinの Iterable#chunked が便利だな~と思っていた矢先、JavaでListを複数のリストに分割する機会があった。 検索すると独自の実装方法が上位に出てくるが、たぶんCommons CollectionsかGuavaに用意されてるだろうと思ったら、両方にあったのでメモ。 Kot…

JavaScriptでE2Eテストを記述できる、TestCafeを試してみる

E2Eテストについてちょこちょこ調べていて、ブラウザ操作の自動化でSelenium以外に何かないかなと思っていたら、TestCafeが割と良さそうだったのでメモ。 環境 TestCafeとは インストール テスト実行 JavaScriptからの実行 テスト実装 fixtureとtest TestCon…

Kotlinの@JvmOverloadsをプライマリコンストラクタに書く方法

小ネタ。 Kotlinで、プライマリコンストラクタに @JvmOverloads アノテーションを付ける方法を知らないメンバーがいたのでメモ。 状況 対応 振り返り 状況 多いのは以下のような data class 。 data class DataClass(...) と書かれている場合、 @JvmOverload…

GaugeのJava実装を試してみる

前回の続き。 Taikoを使ったJavaScriptによるテスト実装でもろもろ躓いたので、Javaによるテスト実装を試してみる。 環境 JDKのバージョンについて プロジェクトの作成 pom.xmlの修正 Java実装 WebDriver用のヘルパークラス 実行フック データの保存 ステッ…

JavaScriptで毎回メソッド名を忘れる、insertAdjacentHTMLとinsertAdjacentElementについて

JavaScriptで、「文字列をElementにHTMLとして追加できて、 innerHTML じゃなくて、第1引数で追加位置を指定できるメソッド、名前なんだっけ?」と毎回なるのでメモ。 insertAdjacentHTML insertAdjacentElement 備考 insertAdjacentHTML developer.mozilla.o…

Markdownでテスト仕様書を書けるGaugeを試してみる

E2EテストやATDDについて調べていたら、 Markdown でテスト仕様書を書ける Gauge を知り、ちょっと試してみたのでメモ。 環境 Gauge とは インストール 使い方 プロジェクトの作成 Specification の実行 テスト結果の確認 Specification の記述 見出しとシナ…

WindowsでGradleのbootRunがCreateProcess error=206になるときの対応方法と、Kotlinで記述している場合の注意点

開発端末がmacOSだけのプロジェクトに、ひとりWindowsでアサインされた。 プロジェクト管理がGradle、フレームワークがSpring Boot、開発言語がJavaまたはKotlinだったので、さっそく gradlew.bat bootRun すると、 A problem occurred starting process 'co…

GradleでprocessResources時にシンボリックリンクを作成(Windows, macOS対応)

Spring Bootを使ったJavaプロジェクトで、 bootRun をしてから起動するまで数分かかっていた。 調べてみると、 processResources タスクで src/main/webapp/WEB-INF を build/build/resources/main/WEB-INF にコピーしていたが、 src/main/webapp/WEB-INF 配…

Windowsでシンボリックリンクを作るにはmklinkが使えるし、管理者権限なしでフォルダにリンクを張りたいならジャンクションでいいかも

会社で「Windowsだとシンボリックリンクが作れない」という話になった。 mklink で作れると話したら驚かれたのでメモ。 導入が Windowsでシンボリックリンクを作る | Developers.IO と全く同じだなぁ... 環境 mklink コマンド targetに相対パスを指定する際…

従業員数に応じた企業規模の分類(SMB,MM,GBなど)とその正式名称(たぶん)

IR資料などでたまに見かける、「SMB」といった従業員数に応じた企業の分類と、その正式名称が毎回わからなくなるのでメモ。 企業分類の例 分類ごとのSalesforceにおける人数と正式名称(仮) ESB SMB MM GB EBU その他の分類 振り返り 余談 企業分類の例 ビズ…

Javaでinstanceofの代わりに使えるClassクラスのメソッドはisInstanceとisAssignableFromだというメモ

タイトル通り。 使おうと思うたびに「 instanceof 演算子の代わりに使えるメソッドなんだっけ?」となるのでメモ。 環境 それぞれの使い方 instanceof 演算子 Class#isInstance(Object) Class#isAssignableFrom(Class) 注意点 振り返り 環境 OpenJDK 8 8.262.…

Groovyの名前付き引数(パラメータ)について

Groovy + Spockでユニットテストを書いているが、Groovyの名前付き引数・名前付きパラメータを知らないメンバーがいた。 なかなか特殊な仕様なのでメモ。 環境 仕様 コンストラクタの名前付き引数 メソッドやクロージャの名前付き引数 注意点 名前付き引数の…

Gitログからチームを可視化するツール、gilotの各種コマンド(log,plot,info,hotspot,hotgraph,author)をWindowsで試してみた

前回の続き。 試していなかった、 info , hotspot , hotgraph , author といったコマンドを試してみる。 環境 Windows 10 Pro 64bit Version 2004 Python 3.8.5 Git 2.28.0.windows.1 gilot0.2.4 gilotのアップデート 前回試してからgilotをアンインストール…

TypeScriptの、はてなふたつの演算子や、はてなドットの演算子は、JavaScriptの新しい構文だった

TypeScript 3.7以降で使える ?? 演算子。 || 演算子より厳密に undefined や null を判定してくれるので多用していたが、こいつの名前は何だろうと思って調べてみたところ、Nullish Coalescing Operator、日本語だとNull結合演算子というらしい。 ついでに、…