[英]using flowtype to statically check mocha test code
我有一些復雜的Mocha代碼,我想靜態檢查FlowType,為什么不呢?
下面是一個最小的repro:
/* @flow */
describe('it', function () {
it('fails', function() {
const s: number = 'flow spots this error';
});
});
當我對此運行Flow時,Flow確實發現了將string
賦值給number
的問題,這表明該方法在某種程度上有效。
但是,我也得到:
test/test.js:4
4: describe('it', function () {
^^^^^^^^ identifier `describe`. Could not resolve name
test/test.js:5
5: it('fails', function() {
^^ identifier `it`. Could not resolve name
......顯然Mocha測試定義是在這些函數全局可用的環境中運行的,但是查看測試文件沒有什么可以讓Flow檢測到它。
我不確定這些問題是否與摩卡有關,但我不認為我可以自信地用更廣泛的術語來構建問題,所以我的問題是:
describe
每一行it
? 第三方庫通常需要定義文件,即包含給定庫的所有類型信息的文件。
在這種情況下,您需要mocha的定義文件,幸運的是由flow-typed提供。
安裝它
npm install -g flow-typed
然后運行
flow-typed install
它將自動安裝依賴項的所有可用定義文件,包括mocha。
您可以簡單地聲明流describe
, it
變量。
/* @flow */
declare var describe: any;
declare var it: any;
describe('it', function () {
it('fails', function() {
const s: number = 'flow spots this error';
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.