javascript – 运行jasmine测试时,我怎么知道我是否在一个描述块中,在每个块之前或它是否阻塞?

如果在我的测试中在’it’或’beforeEach’块之外使用了一个实用程序,我需要抛出异常.

示例 –

   describe('some test', function(){

     useUtil();     // should throw exception

     beforeEach(function(){
        useUtil()   // should work
     })

     it('should test something', function(){
        useUtil()   // should work
     }) 
   })

util创建了间谍,我想确保它们的创建方式允许Jasmine在每个套件之后清理它们.

最佳答案 您可以创建一个名为isSpecPhase的全局可访问变量,并将其初始设置为false.

然后,定义一个全局的beforeEach:

beforeEach(function () {
    isSpecPhase = true;
});

确保在所有其他套件之前定义beforeEach,以便它在每个规范之前运行.
在您的util函数中,您可以检查isSpecPhase ===是否为true,否则抛出异常.

点赞