Slide 32
Slide 32 text
mochaͰͷςετ
describe("model.Base", ->
describe "override Model.sync", ->
user = null
server = null
User = myapp.model.Base.extend
urlRoot: "/users/"
initialize: (attrs) -> @setStorage "model:user:#{attrs.id}"
before ->
server = sinon.fakeServer.create()
server.respondWith "GET", /\/users\//, [
200, {}, JSON.stringify id: 1, name: "jim", age: 21
]
after ->
server.restore()
beforeEach ->
user = new User id: 1, name: "jim", age: 20
it "set storage fetched data", ->
spy = sinon.spy user.storage, 'set'
user.fetch()
server.respond()
expect(spy.calledOnce).to.be.ok()
expect(spy.args[0]).to.be.eql [
id:1, name:"jim", age:21
"read"
]
spy.reset()
)
coffeescriptͰॻ͚Δ
serverͷmock࡞ͬͯ
GET /users/ʹର͢Δ
ϨεϙϯεΛఆٛ
before࠷ॳʹ1ճ
after࠷ޙʹ1ճ
(serverΛͯ͠Δ)
beforeEach
ຖճ࠷ॳʹ1ճ
(afterEach͋Δ)
spyͨؔ͠ͷ
ঢ়ଶΛςετ
1310݄23ਫ༵