का उपयोग कर रीढ़ की हड्डी संबंध मॉडल का परीक्षण करना मान लीजिए कि मेरे पास दो सरल स्थिरता फ़ाइलें हैं, एक उपयोगकर्ता (1) और संदेशों के लिए एक (2)।जैस्मीन
संदेशों के लिए बैकबोन मॉडल निम्न (3) है।
यदि मैं "संदेश स्थिरता" लोड करता हूं, तो मैं संदेश मॉडल में निर्दिष्ट उपयोगकर्ता के बारे में संबंधित जानकारी भी लेना चाहता हूं।
चमेली परीक्षण सूट का उपयोग करके एक स्पेक व्यू (4) में इस लक्ष्य को सक्रिय करने का सही तरीका क्या है?
अधिक जानकारी के लिए कृपया (4) में टिप्पणियां देखें।
(1)
// User Fixture
beforeEach(function() {
this.fixtures = _.extend(this.fixtures || {}, {
Users: {
valid: {
status: 'OK',
version: '1.0',
response: {
users: [
{
id: 1,
name: 'olivier'
},
{
id: 2,
name: 'pierre',
},
{
id: 3,
name: 'george'
}
]
}
}
}
});
});
(2)
// Message Fixture
beforeEach(function() {
this.fixtures = _.extend(this.fixtures || {}, {
Messages: {
valid: {
status: 'OK',
version: '1.0',
response: {
messages: [
{
sender_id: 1,
recipient_id: 2,
id: 1,
message: "Est inventore aliquam ipsa"
},
{
sender_id: 3,
recipient_id: 2,
id: 2,
message: "Et omnis quo perspiciatis qui"
}
]
}
}
}
});
});
(3)
// Message model
MessageModel = Backbone.RelationalModel.extend({
relations: [
{
type: Backbone.HasOne,
key: 'recipient_user',
keySource: 'recipient_id',
keyDestination: 'recipient_user',
relatedModel: UserModel
},
{
type: Backbone.HasOne,
key: 'sender_user',
keySource: 'sender_id',
keyDestination: 'sender_user',
relatedModel: UserModel
}
]
});
(4)
// Spec View
describe('MyView Spec', function() {
describe('when fetching model from server', function() {
beforeEach(function() {
this.fixture = this.fixtures.Messages.valid;
this.fixtureResponse = this.fixture.response.messages[0];
this.server = sinon.fakeServer.create();
this.server.respondWith(
'GET',
// some url
JSON.stringify(this.fixtureResponse)
);
});
it('should the recipient_user be defined', function() {
this.model.fetch();
this.server.respond();
// this.fixtureResponse.recipient_user is not defined
// as expected by the relation defined in (3)
expect(this.fixtureResponse.recipient_user).toBeDefined();
});
});
});
});
यह विशेष रूप से आपके प्रश्न का उत्तर नहीं देता है - और वे qunit हैं - लेकिन बैकबोन-रिलेशनल के लिए चश्मे स्वयं आपकी मदद कर सकते हैं: https://github.com/PaulUithol/Backbone-relational/blob/master/ परीक्षण/test.js # L534 –