方法について:
describe("My describe", function() {
let a;
it("test1", function() {
a = [1, 2, 3];
});
a.forEach(function(i) {
it("test" + i, function() {
console.log(i);
});
});
});
あなたのテストが非同期である場合、あなたは彼らにdone
コールバックを追加する必要があります。しかし、この単純な例では、console.log()
を使用する必要はありません。
--EDIT--
私は答えは「いいえ、あなたはこれを行うことはできません」だと思います。私は何が起こっているか確認するために、いくつかのconsole.log
のステートメントを追加しました:
describe("My describe", function() {
let a = [1, 2];
it("First test", function() {
console.log('First test');
a = [1, 2, 3];
});
a.forEach(function(i) {
console.log(`forEach ${i}`);
it("Dynamic test " + i, function() {
console.log(`Dynamic test ${i}`);
});
});
});
そして、これが出力された:
$ mocha
forEach 1
forEach 2
My describe
First test
✓ First test
Dynamic test 1
✓ Dynamic test 1
Dynamic test 2
✓ Dynamic test 2
3 passing (7ms)
ので、mocha
は全体describe
ブロックを実行しているとのいずれかを実行する前に、動的なテストを作成していますit
ブロック。テストが開始された後で、it
ブロック内からより動的なテストを生成する方法がわかりません。
あなたのアレイの作成はit
ブロック内になければなりませんか?
あなたが記述の下に宣言したにも関わらず(ブロック)モカ枠組みの中で – Fahadsk