1
resposta

ReferenceError: MaiorEMenor is not defined

<!DOCTYPE>
<html>
<head>
    <title>Jasmine</title>
</head>
<body>

</body>
<script>
    function MaiorEMenor(){

        var menor;
        var maior;

        var clazz =  {
        encontrar : function(nums) {
            menor = Number.MAX_VALUE;
            maior = Number.MIN_VALUE;

            nums.forEach(function(num) {
                if(num < menor) menor = num;
                if(num > maior) maior = num;
            });
        },
        pegarMenor : function() { return menor;},
        pegarMaior : function() { return maior; }
    };
    return clazz;
}

    var algoritmo = new MaiorEMenor();
    algoritmo.encontrar([7,6,5,4]);

    console.log(algoritmo.pegarMaior() == 7);
    console.log(algoritmo.pegarMenor() == 4);

</script>
</html>

Olá, já procurei nos tópicos mas o que acontece é que não consigo fazer funcionar. Esse código acima é do meu MaiorEMenor.js

  <!-- include source files here... -->
  <script type="text/javascript" src="src/Player.js"></script>
  <script type="text/javascript" src="src/Song.js"></script>
  <script type="text/javascript" src="src/MaiorEMenor.js"></script>

  <!-- include spec files here... -->
  <script type="text/javascript" src="spec/SpecHelper.js"></script>
  <script type="text/javascript" src="spec/PlayerSpec.js"></script>
  <script type="text/javascript" src="spec/MaiorEMenorSpec.js"></script>

esse é meu SpecRunner.html e abaixo tem meu MaiorEMenorSpec.js

describe("MaiorEMenor", function() {


    it("deve entender numeros em ordem nao sequencial", function() {

        var algoritmo = new MaiorEMenor();
        algoritmo.encontrar([5,15,7,9]);

        expect(algoritmo.pegaMaior()).toEqual(15);
        expect(algoritmo.pegaMenos()).toEqual(5);
    });

    it("deve entender numeros em ordem crescente", function(){
        var algoritmo = new MaiorEMenor();
        algoritmo.encontrar([5,6,7,8]);

        expect(algoritmo.pegaMaior()).toEqual(8);
        expect(algoritmo.pegaMenos()).toEqual(5);

    }); 

    it("deve entender numeros em ordem decrescente", function(){
        var algoritmo = new MaiorEMenor();
        algoritmo.encontrar([8,7,6,5]);

        expect(algoritmo.pegaMaior()).toEqual(8);
        expect(algoritmo.pegaMenos()).toEqual(5);

    }); 

});
1 resposta

Fala aí, tudo bem? O problema é porque seu teste está rodando mas não está encontrando a função MaiorEMenor.

O problema é porque seu arquivo src/MaiorEMenor.js possuí HTML, ele precisa ter apenas a função:

function MaiorEMenor(){

        var menor;
        var maior;

        var clazz =  {
        encontrar : function(nums) {
            menor = Number.MAX_VALUE;
            maior = Number.MIN_VALUE;

            nums.forEach(function(num) {
                if(num < menor) menor = num;
                if(num > maior) maior = num;
            });
        },
        pegarMenor : function() { return menor;},
        pegarMaior : function() { return maior; }
    };
    return clazz;
}

Espero ter ajudado.