Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正确使用jasmine或创建测试规范_Javascript_Node.js_Jasmine - Fatal编程技术网

Javascript 正确使用jasmine或创建测试规范

Javascript 正确使用jasmine或创建测试规范,javascript,node.js,jasmine,Javascript,Node.js,Jasmine,我不得不说,我一直在(很可能)以一种稍微错误的方式使用jasmine(-node)。目前我有jasmine测试,所以它们需要以正确的顺序运行。我会在目前需要有一个文件,可以收集和启动不同的茉莉花文件在正确的顺序 现在,我很感激这些建议,它们向我展示了使测试工作顺利进行的其他方法,而不一定只是解决眼前的问题,我的测试技能相当有限,主要是因为作为一名长期的单独程序员,我对它们没有太多的用处 所以实际问题是我有测试规范: mapGenerator-spec.js//初始化/生成一个干净的映射 orde

我不得不说,我一直在(很可能)以一种稍微错误的方式使用jasmine(-node)。目前我有jasmine测试,所以它们需要以正确的顺序运行。我会在目前需要有一个文件,可以收集和启动不同的茉莉花文件在正确的顺序

现在,我很感激这些建议,它们向我展示了使测试工作顺利进行的其他方法,而不一定只是解决眼前的问题,我的测试技能相当有限,主要是因为作为一名长期的单独程序员,我对它们没有太多的用处

所以实际问题是我有测试规范:

  • mapGenerator-spec.js//初始化/生成一个干净的映射
  • orders-spec.js//模拟玩家发出的命令(基于回合)
  • map-spec.js//测试前端和后端使用的部件,从组件创建映射
  • moveOrders-spec.js//通过解析订单->移动单位生成部分回合
  • 所以游戏的逻辑很简单,首先生成一张地图,命令生成玩家给出的命令

    这些测试需要按照精确的顺序执行,因为它们创建的数据库条目依赖于之前的测试。我希望让测试尽可能地为产品准备好/真实,而不是试图跳过数据库插入/获取。有一个单独的测试数据库,在那里生成测试


    因此,您可以建议我,您认为正确的方法是什么(如果这不是一个好方法)和/或建议我,如果需要,如何将这些测试总结为一个集合测试“testAll-spec.js”,它将同步运行测试。

    如果您需要在运行测试之前发生一些事情,那么您应该使用beforeach()

    您还可以嵌套jasmine测试,并在每个测试中运行beforeach(),如下所示:

    describe('testInitialiser', () => {
        var firstVariable;
        beforeEach(() => {
            firstVariable = 1;
        });
        it('should set firstVariable to 1', () => {
            expect(firstVariable).toBe(1); 
        });
        // this is a nested test - these tests will run after the above beforeEach.
        describe('nested test ', () => {
            // all tests within this describe will have access to firstVariable.
            var secondVariable;
            beforeEach(() => {
                secondVariable = firstVariable + 1;
            });
            it('should set secondVariable to firstVariable + 1 ', () => {
                expect(secondVariable).toBe(2); 
            });
        });
    });
    

    希望这有帮助。

    问题是我有4个(或更多)单独的测试规范。我可以按照正确的顺序单独运行它们,并通过测试。它们都使用数据库,实际上并没有受到任何方式的嘲笑。我需要将它们基本上结合起来,这样我就可以轻松地以正确的顺序运行测试,或者有一种方法使它们不相互独立。后者有点难,因为我需要在每个测试中分别启动数据库和以前的测试。