Tôi muốn thử nghiệm ứng dụng góc cạnh của tôi với Jasmine. Vì vậy, tôi đã tạo một số thử nghiệm, hầu hết chúng hoạt động tốt. Nhưng, một trong các chức năng của tôi yêu cầu người dùng điền vào một lời nhắc. Thử nghiệm không thể điền lời nhắc này, vì vậy tôi đã chế nhạo chúng bằng spyOn(window,'prompt').and.returnValue('test')
. Điều này hoạt động, nhưng chỉ một lần.Jasmine spyOn với nhiều lợi nhuận
Khi tôi thêm hai thành phần của mình (chức năng có lời nhắc), tôi muốn spyOn
lời nhắc đầu tiên với kết quả 'kiểm tra' và dấu nhắc thứ hai với 'test2'. Tôi đã cố gắng làm điều này như sau:
it 'should place the component as last object in the form', ->
spyOn(window, 'prompt').and.returnValue('test')
builder.addFormObject 'default', {component: 'test'}
spyOn(window, 'prompt').and.returnValue('test2')
builder.addFormObject 'default', {component: 'test2'}
expect(builder.forms['default'][0].name).toEqual('test')
Nhưng điều này mang đến cho các lỗi sau: Error: prompt has already been spied upon
này là khá hợp lý, nhưng tôi không biết một cách khác để trở về với một spyOn.
Vì vậy, điều tôi muốn là: Trước khi addFormObject đầu tiên, tôi muốn theo dõi lời nhắc trả về 'thử nghiệm'. Và addFormObject thứ hai tôi muốn để do thám với sự trở lại 'test2'