Ubuntu22.04でwineを使ってKindle本を読むときの設定

インストールや設定はこれに従えば良い。 Ubuntu 22.04 で WineHQ を使って Kindle を読む 2023年度版 #Ubuntu - Qiita とにかく従うことが重要。勝手な判断はしてはいけない。 2系列だと動かねえ・・・昔のバージョンが見つからない場合はこれ。 https://ki…

「低レイヤを知りたい人のためのCコンパイラ作成入門」のポインタ加減算のテスト

各ステップのテストは自分で書くこともあれば、chibiccの該当部分のテストをそのまま使ってそれが通ればヨシ!ということにしている。 ポインタの加減算のところで少し注意が必要で、これはローカル変数をスタックに積む(領域を確保する)順番が問題になるこ…

「低レイヤを知りたい人のためのCコンパイラ作成入門」の「ステップ12: 制御構文を足す」ではまる

はじめに 今、 低レイヤを知りたい人のためのCコンパイラ作成入門 を見ながらCコンパイラを作っている。C言語は一通り文法を学んでちょっとしたプログラムが書けるくらいで、ポインタへのポインタが出てくるとちょっと「うっ」となるレベル。 セルフホストま…

「最小限のコードで動く最も汚いコードから始める」という記事を読んだ

「動作するきれいなコード」を目指すために、まずは「きたないけど動作するコード」で行こうという話を具体的なコードと思考をまじえて語っている。 この記事が良いなと思ったら、t_wadaさんの 動作するきれいなコード: SeleniumConf Tokyo 2019 基調講演文…

Vite + React + TypeScript + Vitestの環境構築(pnpm)

メモです。 Viteの導入 $ pnpm create vite 画面表示したがってReactやTypeScriptを選ぶ。+ SWCを選んでも良い。SWCはRust製の高速なバンドラらしい。 Vitestとtesting-libraryの導入 $ pnpm add -D vitest jsdom @testing-library/react @testing-library/j…

「AHA Testing」という記事を読んだ

前回読んだ記事は抽象化しすぎというかDRYにしすぎることを戒める記事だったけど、この記事はそれとともに全く抽象化しないのも駄目だという記事。 この記事にあるAHAというのはAvoid Hasty Abstractionの略で、「性急な抽象化を避けよ」という意味らしい。 …

「Avoid Nesting when you're Testing」という記事を読んだ

describeによるネストを避けようという記事。 なんだけど、ネストも問題だけどbeforeEachやスコープの広い変数の使いすぎを戒める点の方が強い気がした。 このあたりは 【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべ…

「Test Isolation with React」という記事を読んだ

テストは他のテストに影響を与えないようにちゃんと分離しましょうという記事。 先行するテストに依存してはいけない。(例えば先行するテストでrenderしといて後続でそれを利用するとか。変数セットしといて後のやつが利用するとか。) この記事でも、テスト…

「Write fewer, longer tests」という記事を読んだ

テストを書くときに「1テスト1アサーションにこだわる必要はないよ、長くなっても大丈夫だよ」という記事。 それが提唱されたのは昔はテストが失敗したときに出される情報が少なかったらだとか。 つまり、複数アサーションを書いてるとどのアサーションが失…

Reactのテストでa test was not wrapped in act(...)が出た

const user = userEvent.setup(); render(<Component />); const link = screen.getByRole("link"); await user.click(link) expect(...) のようなコードを書いていたらタイトルのようなWarningが出た。 割とよくあることなのか解決方法も同時に出てstateを更新するイベン</component>…

React + Jest + jsdomでfetchが絡むテストを実行するとTypeErrorが出る

node_modules/jsdom/lib/jsdom/browser/Window.js:376 return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window._document)._location); ^ TypeError: Cannot read properties of null (reading '_location') React + Jestでテストを書いているとこ…

fetchを呼び出してるReactコンポーネントのテストをしたい(調査中メモ)

import { render, screen, waitFor } from '@testing-library/react'; import '@testing-library/jest-dom'; import { useEffect } from 'react'; function Heading({ callback }: { callback: () => void }) { useEffect(() => { async function f() { awai…

JestでNode.jsのfetchをテストしたい

背景 内部でfetchを呼んでいる関数をテストしたいです。 Nodeのv18以降ではnode-fetchなしでfetchが使えるようになりましたが、node-fetchを使っているサンプルが多く組み込みのfetchを使っているサンプルが少ないので調べました。 結論 node:testモジュール…

fetchで一定時間応答がなければタイムアウトしたい

AbortSignal.timeout()が使えます。 // 10秒でタイムアウト const res = await fetch(url, { signal: AbortSignal.timeout(10000) }); タイムアウトすると、TimeoutErrorが例外で投げられるのでこれをcatchして処理します。

Node.jsのfetchを使ってページを取得する

基本はブラウザと同じです。ただし、awaitがトップレベルでも使えます。(async functionの中にいなくても良い) 自分はnode-fetchを使ったことがないがおそらく同じ感じでしょう。 記事を書いた時点でNode.jsのバージョンはv18.16.0です。 取得 try { const r…