Javascript 为什么在我的茶匙/茉莉花规格测试中数字不是构造器?
我正在尝试测试一个.js.coffee文件,但不断出现错误: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
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)确实解决了这个问题,谢谢!!