JavaScript

Jestのスナップショットテストのデメリット

アプリケーション

Jestのスナップショットテストを避けたほうが良いかもしれないデメリットについて雑メモ。 デメリット テストが脆くなってしまう スナップショットテストはUIの変更を簡単に検知することができる反面、テストの関心事ではないような変更(ex. class名のリネームだけで見た目は変わらない変更)であってもテストがFailしてしまう。 アサーションの期待が不明確 スナップショットテストではtoMatchS...

JavaScript jest

マークダウン形式のファイルをPDFファイルに変換する(mermaid・emoji・toc対応)

アプリケーション

概要 マークダウン形式のファイルをPDFファイルに変換したいという要望に応えるための簡易的なドキュメント管理ツールを作った。 bmf-san/docs-md-to-pdf-example 特に深く考えることなくあり物のライブラリを活用して作ったので、あまりサステナビリティを感じない構成になっている。 モチベーション 単にマークダウン形式のファイルをPDFファイルに変換するだけであれば、md-to-...

markdown marked emoji mermaid JavaScript

Jestで始めるJavaScriptのテスト

アプリケーション

概要 Jestを使ってJavaScriptのテストをかいてみる。 準備 jestとESModulesを使いたいのでbabel-preset-2015をインストールしておく。 (babel-jestはjestに用意されている。) npm install --save-dev jest babel-preset-2015 .babelrcの中身はこんな感じ。 { "presets&quo...

ES5 JavaScript babel babel-jest ESModules jest テスト

モダンなJSの話──Proxy

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 ProxyとはProxyはECMAScript 2015から追加されたオブジェクトで、オブジェクトが持つ機能をラップすることにより、オブジェクトの機能をカスタマイズすることができます。 Proxyの関連用語Proxyを知る上で必要な用語です。 handler・・・トラップを入れるため...

ES5 ES6 JavaScript

モダンなJSの話──async function

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 async functionとはasync functionはAsync Functionオブジェクトを返す関数です。 asyncとawaitというキーワードを使って、Promiseよりも簡潔に非同期処理を書くことができます。 ES2017で仕様が定義されています。 使い方使い方はカ...

ES5 ES6 JavaScript

ReactとHistory APIを使ってrouterを自作する

アプリケーション

概要準備まずはHistory APIを理解しておきます。GO TO MDN。 MDN - History MDN - ブラウザの履歴を操作する 忙しい人はpushStateとwindow.popstateだけ理解しておけばなんとかなるはず。 仕様このrouterでは、以下のようなURLに対応します。 /post /post/:id /post/:id/:title クエリパラメータには対応...

ES6 JavaScript React history-api router

モダンなJSの話──Promise

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 PromiseとはPromiseとは・・ The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value...

ES5 ES6 JavaScript

Reactでマークダウンエディタをシャッとつくる

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 準備ビルド環境のセットアップが面倒なので、今回はFacebook公式のcreate-react-appというツールを使います。 npm install -g create-react-app md-editorというアプリ名で環境を用意することにします。 create-react-a...

ES5 ES6 JavaScript React

モダンなJSの話──Destructuring assignment(分割代入)

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 分割代入とは分割代入とは、配列またはオブジェクトのデータをそれぞれ別個の変数に代入する式のことです。文章ではイメージがつきにくいかと思います。それぞれの例を見て確認してみましょう。 配列の分割代入let a, b, c; [a, b, c] = [1, 2, 3] console.l...

ES5 ES6 JavaScript

モダンなJSの話──importとexport

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 exportとはexportは、指定のファイルから関数、変数、オブジェクト、クラス(クラスはプロトタイプベース継承の糖衣構文であり、関数の一種。詳しくは モダンなJSの話──クラス)などを受け取り、任意のファイルでそれらを使えるようにするための文です。 exportには主に2種類の使...

ES5 ES6 JavaScript