QUnit не найден - PullRequest
       15

QUnit не найден

1 голос
/ 06 февраля 2020

У меня есть следующий код в javascript, персона звонка. 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");
   });
});

и индекс. 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, но я не думаю, что это проблема

1 Ответ

0 голосов
/ 13 марта 2020

Я думаю, что проблема в том, что QUnit также запускается на готовом документе, а ВАШ document.ready работает после своего document.ready. Итак, ваши тесты (в controlador. js) еще не существуют. Вместо этого измените порядок файла HTML с файлами JS в конце и в порядке, предложенном в комментарии выше (персона до controlador), а затем удалите document.ready для вашего кода.

Вот пример в 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");
});
...