こんにちは、ナレッジワークのソフトウェアエンジニアの石川宗寿 (munetoshi) です。 この記事は、KNOWLEDGE WORKBlog Sprint の第 27 日目の記事です。 TL;DR: スケルトンコード (型や関数の枠組みだけ定義した未実装のコード) を書くときは、「未実装であること」を確認するテストも一緒に書くことをおすすめします。私はこれを「スケルトンテスト」と呼んでいます[1]。 スケルトンテストを書いておくことで、「コードを実装したにもかかわらずテストを更新しなかった場合に、テストが失敗する」という状況を作れます。結果として、開発者は実装時にテストコードの修正を強制されるわけです。 はじめに: スケルトンコードとは? スケルトンテストの前に、スケルトンコードについて説明します。 スケルトンコードとは、型や関数の名前、引数/戻り値、依存関係だけを先に定義し、具体的な

Photo by steve_jon on Unsplashはじめにはじめまして。Finatext で保険サービスの開発(主にサーバーサイド)をしているすがやです。 いきなりですがみなさん時をかけてますか? 私はかけてます。 …時刻を扱う実装というのは、得てして問題を生みやすいものです。 この記事では時刻の取り回しで生じる問題と、弊社のGoでのサーバー実装におけるそれらの問題との向き合い方を説明します。 時間に起因する課題unit testしづらい問題語り尽くされた話題ではありますが、現時刻に依存した実装はunit testしづらいという問題があります。 たとえば単純な例として呼び出し時点が休日であるかを判定するコードがある場合を考えます。 // IsHoliday 休日か func IsHoliday() bool { dayOfWeek := time.Now().Weekday()

最初は、シンプルなケースでカスタムマッチャーを作成します。 ここではUUIDのフォーマットが正しいことを検証するマッチャーを作成してみましょう。 まずは、Jestのカスタムマッチャーです。この場合は以下のようなマッチャー実装になります。 expect.extend({ toBeUUID(received: unknown): jest.CustomMatcherResult { if (typeof received !== "string") throw newError("actual value must be a string"); const pass = /^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/.test(received); const message = () => { return pass
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く