2023-01-01から1年間の記事一覧
インストールや設定はこれに従えば良い。 Ubuntu 22.04 で WineHQ を使って Kindle を読む 2023年度版 #Ubuntu - Qiita とにかく従うことが重要。勝手な判断はしてはいけない。 2系列だと動かねえ・・・昔のバージョンが見つからない場合はこれ。 https://ki…
各ステップのテストは自分で書くこともあれば、chibiccの該当部分のテストをそのまま使ってそれが通ればヨシ!ということにしている。 ポインタの加減算のところで少し注意が必要で、これはローカル変数をスタックに積む(領域を確保する)順番が問題になるこ…
はじめに 今、 低レイヤを知りたい人のためのCコンパイラ作成入門 を見ながらCコンパイラを作っている。C言語は一通り文法を学んでちょっとしたプログラムが書けるくらいで、ポインタへのポインタが出てくるとちょっと「うっ」となるレベル。 セルフホストま…
「動作するきれいなコード」を目指すために、まずは「きたないけど動作するコード」で行こうという話を具体的なコードと思考をまじえて語っている。 この記事が良いなと思ったら、t_wadaさんの 動作するきれいなコード: SeleniumConf Tokyo 2019 基調講演文…
メモです。 Viteの導入 $ pnpm create vite 画面表示したがってReactやTypeScriptを選ぶ。+ SWCを選んでも良い。SWCはRust製の高速なバンドラらしい。 Vitestとtesting-libraryの導入 $ pnpm add -D vitest jsdom @testing-library/react @testing-library/j…
前回読んだ記事は抽象化しすぎというかDRYにしすぎることを戒める記事だったけど、この記事はそれとともに全く抽象化しないのも駄目だという記事。 この記事にあるAHAというのはAvoid Hasty Abstractionの略で、「性急な抽象化を避けよ」という意味らしい。 …
describeによるネストを避けようという記事。 なんだけど、ネストも問題だけどbeforeEachやスコープの広い変数の使いすぎを戒める点の方が強い気がした。 このあたりは 【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべ…
テストは他のテストに影響を与えないようにちゃんと分離しましょうという記事。 先行するテストに依存してはいけない。(例えば先行するテストでrenderしといて後続でそれを利用するとか。変数セットしといて後のやつが利用するとか。) この記事でも、テスト…
テストを書くときに「1テスト1アサーションにこだわる必要はないよ、長くなっても大丈夫だよ」という記事。 それが提唱されたのは昔はテストが失敗したときに出される情報が少なかったらだとか。 つまり、複数アサーションを書いてるとどのアサーションが失…
const user = userEvent.setup(); render(<Component />); const link = screen.getByRole("link"); await user.click(link) expect(...) のようなコードを書いていたらタイトルのようなWarningが出た。 割とよくあることなのか解決方法も同時に出てstateを更新するイベン</component>…
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でテストを書いているとこ…
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…
背景 内部でfetchを呼んでいる関数をテストしたいです。 Nodeのv18以降ではnode-fetchなしでfetchが使えるようになりましたが、node-fetchを使っているサンプルが多く組み込みのfetchを使っているサンプルが少ないので調べました。 結論 node:testモジュール…
AbortSignal.timeout()が使えます。 // 10秒でタイムアウト const res = await fetch(url, { signal: AbortSignal.timeout(10000) }); タイムアウトすると、TimeoutErrorが例外で投げられるのでこれをcatchして処理します。
基本はブラウザと同じです。ただし、awaitがトップレベルでも使えます。(async functionの中にいなくても良い) 自分はnode-fetchを使ったことがないがおそらく同じ感じでしょう。 記事を書いた時点でNode.jsのバージョンはv18.16.0です。 取得 try { const r…