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

このコマンドで呼び出される、guess.js の処理はおおむね以下のように処理されています。 カレントディレクトリにある package.json の解析 テストディレクトリなどの設定取得 カレントディレクトリにある tsconfig.json の解析 TypeScript コンパイラオプションなどの設定取得 index.js にカレントディレクトリのパス、TypeScript コンパイラオプションの情報を渡し実行 テストを実行する際はほぼプロジェクトルートディレクトリで行われると思うので、カレントディレクトリはプロジェクトルートディレクトリに読み替えることが出来ます。 この時、手順 2においてプロジェクトルートディレクトリに tsconfig.json が存在しないため null が返ってきてしまいコンパイラオプションを取得できず、テスト実行に失敗してしまいます。 ローダの設定とテストの
mochaで、describeをネストして書くことが多いんですが、その時にhook関数がどういう順番で呼ばれるのか不安に駆られたので調べてみました。 テストコードはこんな感じです。行数削減のために詰めて書いているのでちょっと見難いですが、ご容赦ください。 const {expect} = require("chai"); before(function(){console.log("global before")}); beforeEach(function(){console.log("global beforeEach")}); after(function(){console.log("global after")}); afterEach(function(){console.log("global afterEach")}); describe("hook call order
この記事は、初めてJavaScriptのテスト環境を作ってみたおじさんによる、これからJavaScriptのテストを書いていきたいけど、登場人物が多すぎてなにやらめんどくさそうと思っている方に向けた記事兼備忘録です。 初めてのJavaScriptテスト環境構築で一応公式ドキュメントに目を通したけど英語の意味をちゃんと読み取れておらず、ツールやライブラリの理解や使い方が間違っている場合がありますのでアドバイスいただけると幸いです。 各テストツールやライブラリの紹介 JavaScriptのテスト環境を構築するときの一つ目の壁がツールやライブラリがたくさん出てきて、どれを使っていいかわからない/それぞれの役割がわからないことだと思う。 なので、まずはJavaScriptのテスト環境についてググったときに出てくる最近使われてそうな各ツールやライブラリの役割をすごく雑に紹介します。 テストフレームワ
power-assert is fully compatible with assert. So functions below are also available though they are not enhanced (does not produce descriptive message). assert.fail(actual, expected, message, operator) assert.throws(block, [error], [message]) assert.doesNotThrow(block, [message]) assert.ifError(value) API - power-assert/v1.3.1/README.md とあるように、assert.throwsはテスト失敗時に整形されません。
なんかどうも jsdom + power-assert + 自作の eater を使ってテストをしていたら espower-loaderが中で使っている source-map-support のモジュールがエラーになる。 エラーの場所はココ で、source-map-support の中で何やってるかというと、 error.stack プロパティがあるかどうかを見てるが、 stack を触った瞬間に下記のエラーになり、巻き込んで別な例外が出て死ぬ TypeError: Invalid URL Error /Users/furukawa.yosuke/Program/xxxxxxxx/node_modules/espower-loader/node_modules/source-map-support/source-map-support.js:388 var hasStack = (arg
assert-polyfill - an exterminate "TypeError: undefined is not a function" you encounter in node-v0. polyfillを作成しました。mocha.optsに定義するか、power-assertのrequire前に実行することで、deepStrictEqualとnotDeepStrictEqualが未定義の時だけ、アサート関数を定義します。 require('assert-polyfill'); var assert = require('power-assert'); assert.deepStrictEqual(['foo'], ['foo']) // pass assert.notDeepStrictEqual(['foo'], ['bar']) // pass
Angular1系で書かれてるプロダクトにテストを用意するにあたって環境の構築、実際のテストコードの作成など、色々調べたのでまとめていこうと思います。 前提環境 TypeScript(v1.8, 含テストコード) AngularJS(v1.4) karma+mocha+power-assert コードはイマドキのrequireからの依存解決してbundleするスタイルではなく、TypeScriptのnamespaceでスコープを区切ってtsc --outFile dist/bundle.jsのようにconcatした単一ファイルを吐き出す形です。 環境を再現したリポジトリ:https://github.com/sisisin-sandbox/ngts/tree/master/namespace-style 最低限karmaを動かせるようにする 色々ハマりましたが、最終的にはこちらの記事を参考
TypeScript初心者です。 Node.jsで開発して規模が大きくなってくると型が恋しくなってきますね。TypeScriptはVisual Studio Codeでの補完も効くし、コンパイラがくだらないミスを教えてくれるのでうっかりさんには嬉しいです。 しかし、素のNode.jsで使っていたツール達がそのまま使えないのがネックです。 Node.jsで使用していたmocha, power-assertをTypeScript@2.1.5で使うまでにえらく苦労したのでその軌跡です。 前提 JavaScriptはブラウザで動くフロントエンドの話と、サーバーサイドのNode.jsの話が混在していて情報が錯綜しやすいのですが、本稿はサーバーサイドのNode.jsに関する話です。 . ├── dist ├── node_modules ├── package.json ├── src │ └── i
Javascriptのロジックテストが必要になったのですが、大仰な環境を作るコストも時間もなく、要件的に他のライブラリを組み込む事も難しかったので、普通のChromeのみで出来るテスト環境を構築してみました。 1. 前提条件 Javascriptのみのロジックテスト(画面操作等は行わない) 他ライブラリは使わない インストールは行わない(テスト用の環境構築不要) WindowsとMacで動く事 ブラウザはChrome テストデータと回答はCSVで用意する 2. 選定 上記条件を満たせそうなものとして、JasmineとQUnitが候補にあがりました。 Jasmine vs QUnit detailed comparison as of 2017 - Slant Qunitの方が学習コストが少なそうでしたが、今後の拡張性を考えてJasmineを選択しました。 3. Jasminの導入 Jasm
package.jsonを上記のように更新したら、一度Atomを終了して再度Dev modeで開きなおしてください。 一度終了させるのは、atom-jasmine2-test-runnerのドキュメントにもあるようにpackage.jsonの内容がキャッシュされていて反映されない場合があるからです。 また、Dev modeで開くのは"devDependencies"を更新するためです。 Dev modeで開きなおしたらCommand PaletteからUpdate Package Dependencies: Updateを実行し、外部依存関係を更新します。 これでjasmine2が動くようになります。 動作テスト 動作テストとして、specフォルダに以下のようなファイルを作ってやります。 (jasmineのintroduction.jsから取ってきましたが、ちょっと実行時間が長いです) 作
用意するもの npm で以下のモジュールをインストールする jasmine selenium-webdriver どうにかしてchromedriverを入手する(Chromeで試したい場合) chromedriverという名前で(windowsだとchromedriver.exeかな?)カレントフォルダに置いておく(ほかにいい感じに管理する方法があれば教えてください・・・!) こう書く シンプルに書いています。(ほんとはasync/awaitで書きたいけど) var wd = require("selenium-webdriver"); describe("e2e test", function() { var driver; beforeAll(function () { // デフォルトだと、5秒しか待ってくれないので、20秒くらい待たせる jasmine.DEFAULT_TIMEOU
はじめに Angularでユニットテストを作成したときに使用したjasmineの使い方をメモしていきます。 alertが表示されることをテスト beforeEach(() => { // アラートの監視 spyOn(window, 'alert'); }); it('〇〇な場合、対応するアラートを表示するべきである', () => { // テストを実行 component.testSample(); // テスト結果検証 expect(window.alert).toHaveBeenCalledWith('エラー'); }); it('〇〇な場合、アラートを表示するべきでない', () => { // テストを実行 component.testSample(); // テスト結果検証 expect(window.alert).not.toHaveBeenCalled(); }); let
ng test はとても便利ですが、「今はこのテストケースだけ実行したいのに!」ということや、逆に、「このテストケースはうまく動かないけどしばらく無視しておきたいのに!」ということがあります。 その辺の機能が用意されています! まぁAngularというかJasmineの機能なんですけど…。 このテストだけ実行 describe そして it の代わりに fdescribe そして fit を使います。 "f" は "focused" の意味です。 focused_specs.js コード例 fdescribe(() => { // このテストスイートだけを実行 fit(() => { // このテストケースだけを実行 }); it(() => { // このテストケースは(特記ないので)スキップ }); }); このテストだだけは実行しない describe そして it の代わりに xd
ラクス Advent Calendar 2017の17日目です。 昨日は @Black-Spider さんの「Spring Batch + MyBatisでテーブルパーティション毎に並列処理を行う方法」でした。 こんにちは。@morihirokです。HR事業部でビアバッシュの幹事をするなどしています。 仲良くしてください! JavaScriptのテスト概論 まずはじめにこちらの記事をご覧ください。 2017年JavaScriptのテスト概論 お時間の無い方向けに上記記事を一部引用いたします。 テストツールの種類 テストツールは次の2つの機能に分けられます。単一の機能を提供するツールもあれば、複数の機能の組み合わせを提供するツールもあります。 理論的には単一のツールで同じ成果を出せるとしても、よりニーズに合った機能を入手するために、複数のツールを組み合わせて使用するのが一般的です。 テストの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く