我正在尝试通过使用在 Ruby 中对我有用的相同 TDD 方法来清理我的 Javascript,但是跳到 Jasmine 一直让我陷入困境。
举一个简单的例子,我想指定一个给定的元素在点击时淡出:
$('.position-details').live 'click', ->
$this = $(this)
$this.fadeOut 'fast', ->
$this.closest('.fields').find('.position-search').fadeIn('fast').focus()
我的规格:
describe "Position picker", ->
beforeEach ->
loadFixtures("position_picker.html")
@details = $('.position-details')
@picker = $('.position-picker')
jasmine.Clock.useMock()
it "the position details are initially shown", ->
expect(@details).toBeVisible()
describe "when the position details are clicked", ->
it "fades out the position details", ->
@details.trigger('click')
jasmine.Clock.tick(1000)
expect(@details).not.toBeVisible()
我的夹具:
<div id='position-data' data-positions="[{"value":35,"label":"Accountant","division":"North","job_class":"Headquarters"}]"></div>
<div class='position-details'>
<div class='position-name'></div>
<br />
</div>
<div class='position-picker'>
<label>Position<abbr title="required">*</abbr></label>
<span class="error" />
<input class="position-search" type="text" />
<div>
<input class="position_id" type="text" />
</div>
</div>
第一个规范通过了,我不确定为什么第二个没有。一旦我掌握了其中的一些,我相信它会让人感到第二天性。感谢您的任何帮助或建议!