記録

Mockit 使おうと思ったら Byte Buddy が見つからないエラーが出た

Mockito でインラインモックを使う場合、Byte Buddy ライブラリが必要。以下のように pom.xml に追加した。

<dependencies>
<!-- Mockito -->
<dependency>
  <groupId>org.mockito</groupId>
  <artifactId>mockito-core</artifactId>
  <version>4.10.0</version>
  <scope>test</scope>
</dependency>

<!-- Byte Buddy (Mockitoのインラインモックに必要) -->
<dependency>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy</artifactId>
  <version>1.12.22</version>
  <scope>test</scope>
</dependency>

<!-- Byte Buddy Agent (インラインモックに必要) -->
<dependency>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy-agent</artifactId>
  <version>1.12.22</version>
  <scope>test</scope>
</dependency>
</dependencies>

Java8 で Mockit を使おうとしたら MockMaker のエラーが出た

java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker エラー

Mockito 2.x や 3.x 以降では設定ファイルが必要なことがある。

src/test/resources 配下に mockito-extensions ディレクトリを作成し、
org.mockito.plugins.MockMaker ファイル(拡張子なし)を作成し、以下の内容を記述する。

mock-maker-inline

これにより、インラインモックを使用する設定にできる。

JUnit を実行して例外が出た時に log4j2 出力エラーが出てハマった

log4j2 の設定ファイルは、通常 resources ディレクトリ配下に配置している log4j2.xml である。JUnit 実行時に例外が発生しロガーが動いた時に log4j2.xml の設定内容で動いてしまい、(エラーロギング用の)ファイルが存在しない旨の例外が発生してうまくいかなかった。test ディレクトリ配下に resources ディレクトリを作成し、log4j2-test.xml ファイルを配置することで、JUnit 実行時の例外のロギングで log4j2-test.xml ファイルに設定した内容で動くようになった。以下は ChatGPT に聞いた。JUnit 実行用の log4j2 の設定ファイルの内容。ロギングをコンソール出力するのでファイルが存在しない旨のエラーは出なくなった。

<!-- src/test/resources/log4j2-test.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <!-- コンソールに出力 -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <!-- すべてのロガーをINFOレベルに設定 -->
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

ただし、本番の resources が src 配下にない場合(例えば、直列の場合)、pom.xml に、テスト用のリソースファイルの設置場所を指定しないと、test/resources 配下のリソースは読み込まれない。よって pom.xml に以下を追加する必要がある

<build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </testResource>
    </testResources>
</build>

Java8 を使ったプロジェクトの JUnit でモックを使う

Java のバージョンと JUnit のバージョンと Mockit のバージョンが噛み合わなくてハマった。ChatGPT に、Java8 で Mockitを使いたい旨を聞いたら以下が生成された。動作確認して問題なく Mockit 使えたのでメモ

<dependencies>
    <dependency>
        <groupid>org.mockito</groupid>
        <artifactid>mockito-core</artifactid>
      <version>4.11.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupid>junit</groupid>
        <artifactid>junit</artifactid>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

藤沢の町中華、古久家。美味しかった

神奈川県の藤沢駅近辺には、三大町中華と呼ばれるお店がある。古久家だけ行ったことがなかったが、ついに行ってきた。営業終了が19:30なのでこれまでなかなか行けなかった。この日は夕方から飲み始める日だったので行けた。町中華に行って、これこれ、これが食べたかったんだよ〜って期待を裏切らない味。美味しかった。餃子、ワンタンスープのハーフ、五目あんかけ焼きそば、瓶ビール2本で3000円しないくらい。

餃子は、セブンの冷凍餃子の味に似てるけど、具がそれの1.5倍増し。肉肉しいわけではないけど、満足感のある味。皮はパリッと。美味しかった。

ワンタンスープは、エビワンタンのスープ。具の量もエビの風味もちょうど良いし、皮がちゅるん。美味しかった。

五目あんかけ焼きそばは、よく焼かれた細麺。麺にも少し味はついているけど、主役はあんかけ。上には大きな具が色々乗っていて、その下には白菜と豚肉のあんかけがしっかりかかってる。超美味しかった。ビールによく合う味。辛子や酢もよく合う。

f:id:wawawa12345:20241117234158j:image
f:id:wawawa12345:20241117234154j:image

また行って他のメニューも食べたい。

他人に自分の悪いところやダメなところばかり話してしまう傾向がある

ある最近徐々に気付いてて、自分の悪いところやダメなところばかり話してしまうの、他人にがっかりされたくないってのが根底にあって期待値を下げに行ってるぽくて、結果自分に自分で「あなたはダメな人です」って洗脳しててマジ直した方がいい。

他人に自分の悪いところやダメなところばかり話してしまうところが気になった。昨日人と飲んでたんだけど今日になってそういえば自分・・・となった。自分はダメだと自分を洗脳してしまってる気がする。他人に肯定してもらいたい説(ただ、自分は肯定してほしいとは思っていないはず)、期待されてがっかりされたくないから期待値を下げまくってる説。多分後者だと思う。別にはりきってるわけじゃないのに、面接とか初対面の印象がそこそこよく、期待してるよとか言われるとプレッシャーでかなり病む。歳を重ねるごとに、最初の印象が低い方が楽に仕事できることに気づいて、できることを全部言わなかったりする。うーん、がっかりされるのが結構堪えるのかも。だからといって他人に期待したりがっかりしたりするかというとしないよな。


(追記)

  • がっかりされたくないのではなく、他人にダメ認定される前に自分でダメ認定をすることでダメージを避けようとしてる説が浮上。防御

見つけた不具合を全て報告するか

致命的な不具合を見つけたらバグチケット起票するのは絶対やるけど、表記揺れだったり、別に致命的じゃなかったりすると起票するか悩んで起票しなかったりする。困りそうか困りそうじゃないかで判断してると思う。別に今やらなくても困らないことを言及したくない気持ちがある。もっと大事なことがあるだろうから。でも言わないとずっとそのままか、他の人が起票するんだと思う。自分でサクッと直しちゃえばいい問題、直したあと他の人のテストが必要だったりして、優先度高いテストが優先だから優先度低いテストがしばらく実施されなかったりするから現実的じゃないのと、余計なことして失敗したくない守りの気持ちがある。