Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在我的茶匙/茉莉花规格测试中数字不是构造器?_Javascript_Ruby On Rails_Jasmine_Teaspoon - Fatal编程技术网

Javascript 为什么在我的茶匙/茉莉花规格测试中数字不是构造器?

Javascript 为什么在我的茶匙/茉莉花规格测试中数字不是构造器?,javascript,ruby-on-rails,jasmine,teaspoon,Javascript,Ruby On Rails,Jasmine,Teaspoon,我正在尝试测试一个.js.coffee文件,但不断出现错误: Failure/Error:TypeError:undefined不是构造函数(正在计算'Number.isNaN(likecount)') 我相信我需要在我的规范文件中包含这个数字,我该怎么做?我是新的规格测试 这是我的js.coffee文件 class Page.LikeButtons constructor: (@el) -> Page.handleAjaxOn @el.find('.js-create-lik

我正在尝试测试一个.js.coffee文件,但不断出现错误:

Failure/Error:TypeError:undefined不是构造函数(正在计算'Number.isNaN(likecount)')

我相信我需要在我的规范文件中包含这个数字,我该怎么做?我是新的规格测试

这是我的js.coffee文件

class Page.LikeButtons
  constructor: (@el) ->
    Page.handleAjaxOn @el.find('.js-create-like'), (event, data) =>
      @_increaseCountOnPage()

  _increaseCountOnPage: () ->
    likesContent = @el.find('button.like-count.js-show-modal')
    likesElement = likesContent[0].innerHTML.split(' ')
    likesCount = parseInt(likesElement[0])
    like = "Likes"
    if (Number.isNaN(likesCount))
      like = "Like";
      likesCount = 0;
    likesContent[0].innerHTML = "#{parseInt(likesCount) + 1 } #{like}"

$(document).ready ->
  for el in $('.js-like-button-container')
    new Page.LikeButtons($(el))

describe 'like buttons', ->
  beforeEach ->
    setFixtures ''' 
      <div class="js-like-button-container" data-taste-id="456">
        <div class="hidden js-hideable-modal"></div>
          <button class="like-count js-show-modal"></button>
        <div class="js-create-like"></div>
        <div class="js-delete-like"></div>
      </div>
    '''

    new Page.LikeButtons($('.js-like-button-container'))

  describe 'when the user clicks to like', ->
    beforeEach ->
      $('.js-create-like').trigger('ajax:success', [{like: {id: 123}}])

    it 'classes the container as current-likes', ->
      expect($('.js-like-button-container')).toHaveClass 'current-likes'

    it 'builds an href for the delete button for the created like', ->
      expect($('.js-delete-like').attr('href')).toEqual(
        '/api/...'
      )
这是我的spec.js.coffee文件

class Page.LikeButtons
  constructor: (@el) ->
    Page.handleAjaxOn @el.find('.js-create-like'), (event, data) =>
      @_increaseCountOnPage()

  _increaseCountOnPage: () ->
    likesContent = @el.find('button.like-count.js-show-modal')
    likesElement = likesContent[0].innerHTML.split(' ')
    likesCount = parseInt(likesElement[0])
    like = "Likes"
    if (Number.isNaN(likesCount))
      like = "Like";
      likesCount = 0;
    likesContent[0].innerHTML = "#{parseInt(likesCount) + 1 } #{like}"

$(document).ready ->
  for el in $('.js-like-button-container')
    new Page.LikeButtons($(el))

describe 'like buttons', ->
  beforeEach ->
    setFixtures ''' 
      <div class="js-like-button-container" data-taste-id="456">
        <div class="hidden js-hideable-modal"></div>
          <button class="like-count js-show-modal"></button>
        <div class="js-create-like"></div>
        <div class="js-delete-like"></div>
      </div>
    '''

    new Page.LikeButtons($('.js-like-button-container'))

  describe 'when the user clicks to like', ->
    beforeEach ->
      $('.js-create-like').trigger('ajax:success', [{like: {id: 123}}])

    it 'classes the container as current-likes', ->
      expect($('.js-like-button-container')).toHaveClass 'current-likes'

    it 'builds an href for the delete button for the created like', ->
      expect($('.js-delete-like').attr('href')).toEqual(
        '/api/...'
      )
描述“类似按钮”,->
每次之前->
设置装置“”'
'''
新页面.LikeButtons($('.js like按钮容器'))
描述“当用户单击以喜欢”时,->
每次之前->
$('.js create like').trigger('ajax:success',[{like:{id:123}}]))
它“将容器分类为当前喜欢的容器”,->
expect($('.js like button container')).toHaveClass“current like”
它“为已创建的类的删除按钮构建href”,->
expect($('.js delete like').attr('href')).toEqual(
“/api/…”
)

因为
isNaN
不是
Number
的方法,而是
Number
的构造函数。因此,当您编写
Number.isNaN(likescont)
时,它被解释为一个构造函数。尝试
isNaN(likescont)
代替。使用isNaN(likescont)确实解决了这个问题,谢谢!!