我以前从未使用过 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/