javascript - 引用错误 : $ is not defined - Jasmine

标签 javascript jquery ajax unit-testing jasmine

我以前从未使用过 Jasmine,但我正在从事的这个小项目需要我。无法完全弄清楚,任何帮助将不胜感激。我查看了各种教程并用谷歌搜索了这个问题,但对这个不熟悉并没有帮助。

JS源文件

> $(document).ready(function(){
>    
> 
> $.ajax({ type: 'GET', dataType: "json", url: "db.php/realmadrids", 
> success: showResponse,  error: showError });
> 
> 
> 
>  
> 
> 
> console.debug("error");   function showResponse(responseData){
> 
>   //$("#get1").click(function getPlayers(responseData) { 
>   console.log('Image is clicked');    console.log(responseData);
>     $.each(responseData.realmadrid, function(index, realmadrid){
>       console.log(' is ');
>         $("#playercontentRealMadrid").append("</br><strong> Full Name: </strong>" +realmadrid.PlayerName+ " "+realmadrid.PlayerLastName+"
> </br> <strong>Player Position: </strong>" +realmadrid.PlayerPosition+"
> </br><strong>Player Age: </strong>" +realmadrid.Age+"
> </br><strong>Player Height: </strong>" +realmadrid.Height+"
> </br><strong>Player Weight: </strong>" +realmadrid.Weight+"
> </br><strong>Team Name: </strong>" +realmadrid.TeamName+"</br>");
>     
>         console.log('Data should output'); // });   });
> 
> console.log(responseData);
>     }
>     console.debug("hello");
> 
> function showError(){ alert("Sorry, but something went wrong. Fix
> it!!!!") }
> 
> });

这是我的测试代码:

//Test Suite
describe("Spy on my own AJAX call", function(){
    
    it("should make AJAX request with successful setting", function() {
    
        spyOn($, "ajax");
        
        expect($.ajax).toHaveBeenCalledWith({
            url:'db.php/realmadrids',
            type:'GET',
            dataType: "json",
            sucess: showResponse,
            error: showError
        });
    
    });
   
});

最佳答案

我在 Angular 7 项目中遇到了同样的问题。 以下步骤解决了这个问题。

在 spec.ts 文件顶部添加以下代码

    declare var $: any;

Karma 插件 - jQuery 框架的适配器。

    npm install karma-jquery --save-dev

在 karma.conf.js 文件的 'plugins' 数组中添加 'karma-jquery'

    module.exports = function(config) {
    config.set({

    plugins: ['karma-jquery']

在同一文件中的框架数组中添加 jquery 的版本。

    frameworks: ['jasmine', '@angular-devkit/build-angular','jquery-3.2.1']

关于javascript - 引用错误 : $ is not defined - Jasmine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658274/

相关文章:

javascript - Passport.js 不适用于 sails 套接字环境

javascript - 将 (Sinatra) Ruby 值传递给 Javascript

javascript - 单击链接时无需回发即可获取数据

jquery - 如何创建在页面到达末尾时滚动到 View 中的页脚

python - 逆向django中的Ajax模块构建通知系统

jquery - 从ajax返回数据时data.length不起作用

javascript - jQuery - 我怎样才能做到这一点(标签替换)

javascript - React.js app.js 文件大小

javascript - 关闭下拉菜单时将 div 移回原始位置

javascript - 如何重新绑定(bind)jquery中的事件