43746


Frisbyに関して、以下の動作を期待しています。

①動作A  
②動作B  
③動作C

  1. ①動作Aおよび②動作Bを非同期で実施する。  
（それぞれ複雑なDB操作を行いますが、衝突はしません。）

  2. 【1.】が実施され、完了後に③動作Cを実施し、APIのテストを行う。

Localで実行したところ、現時点では【1.】と【2.】の制御が上手くいっておりません。  
アドバイス・知見等をご教示頂きたいです。

> describe('test', (done) => {  
>  //////////////////////////////////////////////  
>  var originalTimeout;
>
> beforeEach((done) => {  
>  console.log('★★★★★before_proceed');
[code]

>       // 動作A
>  
>       // 動作B
>  
[/code]

>
> });
>
> it('試験実施:', (done) => {  
>  // 動作C
>
> });  
>  });


CC BY-SA 3.0
2018-04-27T13:34:35.237
43612
2018-05-02T16:14:58.520
2018-04-27T13:51:06.323
24207
24207
question
非同期 jasmine
Frisbyにおける非同期処理の順序制御に関して


Promise.all を使った並列化が可能であると考えられます。

コード:

[code]

    const frisby = require('frisby');
    
    describe('test', () => {
    
      beforeEach((done) => { 
        console.log('★★★★★before_proceed');
        Promise.all([
    
          // 動作A
          Promise.resolve()
            .then(() => console.log("A start"))
            .then(() => frisby.get('https://www.google.com').expect('status', 200))
            .then(() => console.log("A end")),
    
          // 動作B 失敗するように書きます
          Promise.resolve()
            .then(() => console.log("B start"))
            .then(() => frisby.get('https://www.google.com').expect('status', 400))
            .then(() => console.log("B end"))
    
        ]).then(done).catch(done);
      });
    
      it('試験実施:', (done) => {
        // 動作C
        expect(1).toBe(1);
        done();
      });
    
    });
    
[/code]

出力:

[code]

    Randomized with seed 83497
    Started
    ★★★★★before_proceed
    A start
    B start
    A end
    F
    
    Failures:
    1) test 試験実施:
      Message:
        Failed: HTTP status 400 !== 200
      Stack:
        error properties: Object({ generatedMessage: false, code: 'ERR_ASSERTION', actual: 200, expected: 400, operator: '===' })
            at <Jasmine>
            at FrisbySpec.status (/Users/set0gut1/tmp/g/node_modules/frisby/src/frisby/expects.js:25:12)
            at response (/Users/set0gut1/tmp/g/node_modules/frisby/src/frisby/spec.js:373:23)
            at _fetch._fetch.then.response (/Users/set0gut1/tmp/g/node_modules/frisby/src/frisby/spec.js:214:34)
            at <Jasmine>
            at process._tickCallback (internal/process/next_tick.js:188:7)
    
    1 spec, 1 failure
    Finished in 0.197 seconds
    Randomized with seed 83497 (jasmine --random=true --seed=83497)
    
[/code]


CC BY-SA 4.0
2018-05-02T16:14:58.520
43746
2018-05-02T16:14:58.520
28340
43612
answer