質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Mocha

Mochaは、JavaScriptのテストフレームワークの一つ。mocha自体にはアサーション機能はなく、ブラウザを使用するフロントエンドのテストや、node.jsを用いたテストの両方に対応しています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

1183閲覧

TypeScript で chai-datetime ( などの matcher ) を使うときの呼び方について

tanishi_a

総合スコア484

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Mocha

Mochaは、JavaScriptのテストフレームワークの一つ。mocha自体にはアサーション機能はなく、ブラウザを使用するフロントエンドのテストや、node.jsを用いたテストの両方に対応しています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/04/16 00:51

質問

vue create コマンドで TypeScript と Mocha + Chai を使用した Vue.js プロジェクトで、
chai-datetime を使ときの正しい(?)呼び方について ご存じの方いらしたら教えていただけないでしょうか?

呼び出し自体は出来るのですが、
とある *.spec.js ファイルで下記の 方法1 や 方法2 で呼び出すと、
他の *.spec.js ファイルでも equalDate() が使えるようになってしまうため、
呼び出し方が合っていないのではないか? と気になったため質問しています。

この書き方が間違いではなく、全体に適用されるのが そういうもの、なのであれば、共通のファイルを用意しといて、
そこで chai-datetime など、 chai.use するもの全部を呼ぶようにするのがスッキリするかなと思い。

やったこと

chai-datetime のインストール

https://www.npmjs.com/package/chai-datetime

npm install chai-datetime --save-dev

試したソース

TypeScript

1import chai, { expect } from 'chai'; 2// import 'chai-datetime'; // 方法1 3import chaiDateTime from 'chai-datetime'; // 方法2 4 5describe('DateTime sample', () => { 6// chai.use(require('chai-datetime')); // 方法1 7 chai.use(chaiDateTime); // 方法2 8 9 it ('test Date', () => { 10 expect(new Date(2020, 2, 15)).equalDate(new Date('2020/03/15')); 11 }); 12}); 13

実行

npm run test:unit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

他の *.spec.js ファイルでも equalDate() が使えるようになってしまうため、

はい、そういうものです。共通して存在するchaiのインスタンス自体を書き換えてしまいます。

投稿2020/04/16 01:44

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanishi_a

2020/04/16 01:51

ありがとうございます! ということは1回呼べば良いので個別の *.spec.js ファイルでなく、 Common.spec.js みたいなファイルで書くようにしようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問