找不到QUnit

问题描述 投票:1回答:1

我在javascript中有以下代码,请致电persona.js:

var PrototipoPersona = {
         nombre : '' ,
         primerApellido : '',
         segundoApellido : ''
    }
    getNombre = function(){
        return this.nombre;
    }
    getPrimerApellido = function(){
        return this.primerApellido;
    }
    getSegundoApellido = function(){
        return this.segundoApellido;
    }

    setNombre = function(nombre){
        this.nombre=nombre;
    }
    setPrimerApellido = function(primerApellido){
        this.primerApellido = primerApellido;
    }
    setSegundoApellido = function(segundoApellido)
    {
        this.segundoApellido = segundoApellido;
    }
    var Persona = function(datosPersona) {
       var miPersona = Object.create(PrototipoPersona);
       miPersona = $.extend(miPersona,datosPersona);
       return miPersona;
    }

控制者调用controlador.js:

$(document).on('ready',function(){

    var datosPersona = {
        nombre : 'Juan' ,
        primerApellido : 'Garcia',
        segundoApellido : 'Lopez'
   };
   var miPersona = Persona(datosPersona);
   var nombre = miPersona.getNombre();
   var primerApellido = miPersona.getPrimerApellido();
   var segundoApellido = miPersona.getSegundoApellido();
   QUnit.test("prueba", function(assert) {  
     assert.equal(nombre,"Juan","El nombre es correcto");
     assert.equal(primerApellido,"Garcia","El primer apellido es correcto");
     assert.equal(segundoApellido,"Lopez", "El segundo apellido es correcto");
   });
});

和index.html:

<html>
<head>
<meta charset="utf-8">
<title>Ejemplo basico de javascript</title>
<link rel="stylesheet" href="qunit-2.9.2.css">
<script src="./qunit-2.9.2.js"></script>
<script src="./jquery-3.2.1.slim.min.js"></script>
<script src="./controlador.js"></script>
<script src="./persona.js"></script>
</head>
 <body>
     <div id="qunit"></div>
     <div id="qunit-fixture"></div>    
 </body>
</html>

Output in Browser

当我尝试下面的代码时,它不起作用,它给出了图像中显示的错误,因为当我在浏览器中运行它时,它不起作用Qunit找不到要启动的测试,我正在mozilla firefox和Visual Studio代码,但我不认为这是问题

javascript qunit
1个回答
0
投票
我认为问题在于QUnit

also已在准备就绪的文档上运行,而您的document.ready正在其document.ready的after运行。因此,您的测试(在controlador.js中)尚不存在。相反,请按照上面注释中建议的顺序(角色before controlador),将HTML文件的末尾的JS文件重新排序,然后删除document.ready for your code。

这里是一个example in JSFiddle,它在运行QUnit时“起作用”。您的代码中还有其他问题,但希望运行测试会有所帮助。

在html文件中:

<html> <head> <meta charset="utf-8"> <title>Ejemplo basico de javascript</title> <link rel="stylesheet" href="qunit-2.9.2.css"> </head> <body> <div id="qunit"></div> <div id="qunit-fixture"></div> <script src="./jquery-3.2.1.slim.min.js"></script> <!-- put jQuery first! --> <script src="./qunit-2.9.2.js"></script> <script src="./persona.js"></script> <!-- notice this one BEFORE controlador --> <script src="./controlador.js"></script> </body> </html>

然后输入controlador.js

QUnit.test("prueba", function(assert) { // Note that I moved all test code INSIDE the test case, this is the proper way. var datosPersona = { nombre : 'Juan' , primerApellido : 'Garcia', segundoApellido : 'Lopez' }; var miPersona = Persona(datosPersona); var nombre = miPersona.getNombre(); var primerApellido = miPersona.getPrimerApellido(); var segundoApellido = miPersona.getSegundoApellido(); assert.equal(nombre,"Juan","El nombre es correcto"); assert.equal(primerApellido,"Garcia","El primer apellido es correcto"); assert.equal(segundoApellido,"Lopez", "El segundo apellido es correcto"); });

© www.soinside.com 2019 - 2024. All rights reserved.