2017-11-20 31 views
1

である私のエラーコード捕捉しない:Function FunctionThatDoesNotExistsInString does not exists in string.を:あなたは、エラーが実際に発生した見ることができるようにエラーがスローされますが、冗談の `toThrowは()`エラーここ

FAIL build/__test__/FuncOps.CheckFunctionExistenceByString.test.js 
    ● 
    expect(CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    )).toThrow(); 


    Function FunctionThatDoesNotExistsInString does not exists in string. 

     at CheckFunctionExistenceByStr (build/FuncOps.js:35:15) 
     at Object.<anonymous> (build/__test__/FuncOps.CheckFunctionExistenceByString.test.js:12:51) 
      at new Promise (<anonymous>) 
      at <anonymous> 

を。しかし、それはJestでパスとしてキャプチャされていません。ここで

は私のコードです:

test(` 
    expect(CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    )).toThrow(); 
    `,() => { 
    expect(CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    )).toThrow(); 
    } 
); 

答えて

1

expect(fn).toThrow()は、と呼ばれる機能fnを期待し、例外がスローされます。

しかし、CheckFunctionExistenceByStr immediatellyを呼び出すと、アサートを実行する前に関数がスローされます。

test(` 
    expect(() => { 
     CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    ) 
    }).toThrow(); 
    `,() => { 
    expect(() => { 
     CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    ) 
    }).toThrow(); 
    } 
); 

test(` 
    expect(CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    )).toThrow(); 
    `,() => { 
    expect(CheckFunctionExistenceByStr(
     'any string', 'FunctionThatDoesNotExistsInString' 
    )).toThrow(); 
    } 
); 

を交換してください

関連する問題