Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

やりたい事 前回の、単体テストで開始時にモックサーバを起動し、終了時に停止する - Qiita では json-server をライブラリとして使ってサーバを起動・終了する手順を書きました。 json-server はコマンドラインからの実行もできるので、そちらを利用した書き方です。 前回の記事は、mocha 単体では実行できたのですが mocha-webpack を使った時に、うまく動かなかったので、そういう場合の回避策として調べました。 どうやるか child_process.spawn を使ってコマンドを (background で) 起動し、標準出力への出力内容から起動したかどうかを確認します。 終了は、起動時の PID を記録しておき、それを kill することで実現します。 実装例 import * as child_process from "child_process";
やりたい事 JavaScript の単体テストで、テスト対象のコードがサーバと通信して JSON 形式で受信を受け取る場合、サーバと通信する部分を置き換えてテストコード内部で完結するようにしたい。 しかし、通信する部分をモックで置き換えるのはしたくないので、テスト用に JSON を返すサーバを立てたい、そしてサーバは開始時に起動、終了時に停止させたい。 どうやるか json-server は こんな感じに サーバの実装をすればできる。 json-server は、パスと返る JSON の内容をコードから指定できるので、テストケースに合わせてテストコード内で修正できる。 実装例 var jsonServer = require("json-server"); var assert = require("assert"); var http = require("http"); describ
var gulp = require("gulp"); var browser = require("browser-sync").create(); var concat = require("gulp-concat"); var uglify = require("gulp-uglify"); var Server = require("karma").Server; /** * server setting */ gulp.task("server", function () { browser.init({ server: { baseDir: "./", index: "index.html" } }); }); /** * browser reload */ gulp.task("reload", function () { browser.reload(); }); /**
Nodeで最低限のテストができるようにするよ。何も知らなくても15分くらいあればテストの最初の一歩をふみだせるように記事を書いたよ。 概要 npm test でテストが走るように設定 テストコード作成 Step#01 初期設定 ~/letstest をプロジェクトディレクトリにしよう。配下にtestディレクトリを作ってここにテストコードを置く。ディレクトリ名をtestにすることで、テストツールがテストコードの場所を見つけることができる。テストツールはmochaが普通に使われているのでこれをインストールする。 $ mkdir -p ~/letstest/test $ cd ~/letstest $ npm init -y $ npm install -save mocha npm init -y コマンドを打つと、package.jsonが生成される。この中のscripts.testフィール
mocha における describe it before beforeEach after afterEach の実行順序JavaScriptmocha はじめに この記事について Javascript のテストフレームワーク mocha における describe it before beforeEach after afterEach の実行順序について調べてみました。 環境 Windows 7 Professional x86 mocha 5.0.1 結果 5行で describe は上から順番に実行される it は上から順番に実行される beforeEach, afterEach は 各 it の前後 で実行される before は describe の最初に一度だけ 実行される after は describe の最後に一度だけ 実行される 実行結果 $ mocha test.
mocha でテストを書いている時に、どうしてもブレークポイントで止めてデバッグしたくなることがあります。 おもむろにコードにdebuggerを仕込みます。 そして mocha コマンドに --debug-brk --inspect とオプションをつけて実行しましょう。 chrome-devtools:// で始まるURLが吐き出されるので、ブラウザでそれを開きます。 $ mocha ./something-spec.js --compilers js:babel-register --debug-brk --inspect Debugger listening on port 9229. Warning: This is an experimental feature and could change at any time. To start debugging, open the f
はじめに 長いので、興味のない人は TL;DR まで飛ばしてください。 JavaScriptを綺麗な状態で保つためになくてはならない存在のESLintだが、それが素のJavaScriptではなく、mocha用のテストファイルだと話が変わる。 ファイル内で定義していない関数、describeやitを使うからだ。 そうなってくると、プログラムがエラーだらけになってくる。 しかし、これだけのためにテストファイルに対して、ESLintを無効にするのももったいないので、何か回避する方法が無いのか調べてみてもルール単位、ここではno-undefを無効にする方法しか日本語の解説が見つからなかったので、同じ様な事態になった人の助けになればとこの記事を書く。 TL;DR ソースコードの一行目に
基本的に大きなVue.jsアプリケーションを開発するとVue-cliで新しいプロジェクトを作成して、Babel、Jest、Webpackなどを入れます。複雑ですね。でもツールは全部JavaScriptなので、ブラウザだけでも使えます。 この記事で、Node.js、Webpackなどの複雑なツールなしでvue-test-utilsを使ってTDDで簡単なアプリケーションを作ります。ブラウザとスクリプトタグだけで書きます。 何を作る? これは、MUST-DOアプリケーションです。TODOのようなアプリケーションですが、TODOを入れられないし、削除できないのでMUST-DOです。 ソースコードはここ。index.htmlだけです。 Vueとテストを書くには必要なものは: Vue Vue-test-utils テストランナー (Mocha.jsを使います) 始めます。 検証は? 簡単なアプリケーシ
はじめに Node.jsでユニットテストをする場合に、どう設計するのが良いか?を言葉にしてみる。あくまで「私は、これが(今は)しっくりくる」という話。なおASTによるソース解析を含めたHook手法は、今回は行わないものとする。 こちらの記事「テストフレームワークを利用するときの、コード設計について」で書いた「テスト対象の関数から呼ばれる外部関数の全てをフック可能にしておく」と、結論としては同じ。 もう少しスッキリ書けるんじゃないかな?ってのがこの記事の目的。 あと「先にテストを書いてから実装」という話との関連も少し書く。 流れとしては、以下。 こんな風に書くと、テスト時のローカル関数のフックが楽にできる。 この書き方の元にテストを書くとこうなる(実装は無しでテストはFailする)。 実装するとこうなる。 【補足】 2018/07/10:サンプルコードへのリンク(GitHub)を追記しました
このコマンドで呼び出される、guess.js の処理はおおむね以下のように処理されています。 カレントディレクトリにある package.json の解析 テストディレクトリなどの設定取得 カレントディレクトリにある tsconfig.json の解析 TypeScript コンパイラオプションなどの設定取得 index.js にカレントディレクトリのパス、TypeScript コンパイラオプションの情報を渡し実行 テストを実行する際はほぼプロジェクトルートディレクトリで行われると思うので、カレントディレクトリはプロジェクトルートディレクトリに読み替えることが出来ます。 この時、手順 2においてプロジェクトルートディレクトリに tsconfig.json が存在しないため null が返ってきてしまいコンパイラオプションを取得できず、テスト実行に失敗してしまいます。 ローダの設定とテストの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く