アプリケーションにnode、mocha、chaiを使用しています。返された結果のデータプロパティが、モデルオブジェクトの1つと同じ「オブジェクトのタイプ」であることをテストしたいと思います(chaiのインスタンスに非常に似ています)。2つのオブジェクトのプロパティ名のセットが同じであることを確認したいだけです。プロパティの実際の値には特に興味がありません。
以下のようなモデルPersonがあるとします。私のresults.dataに、予想されるモデルと同じプロパティがすべて含まれていることを確認したいと思います。したがって、この場合、firstNameとlastNameを持つPersonです。
したがってresults.data.lastName
、results.data.firstName
両方が存在する場合は、trueを返す必要があります。どちらかが存在しない場合は、falseを返します。ボーナスは、results.dataにresults.data.surnameのような追加のプロパティがある場合、Personに姓が存在しないためfalseを返します。
このモデル
function Person(data) {
var self = this;
self.firstName = "unknown";
self.lastName = "unknown";
if (typeof data != "undefined") {
self.firstName = data.firstName;
self.lastName = data.lastName;
}
}
単純なデータをシリアル化して、等しいかどうかを確認できます。
data1 = {firstName: 'John', lastName: 'Smith'};
data2 = {firstName: 'Jane', lastName: 'Smith'};
JSON.stringify(data1) === JSON.stringify(data2)
これはあなたに何かを与えるでしょう
'{firstName:"John",lastName:"Smith"}' === '{firstName:"Jane",lastName:"Smith"}'
機能として...
function compare(a, b) {
return JSON.stringify(a) === JSON.stringify(b);
}
compare(data1, data2);
あなたが言うようにチャイを使っているなら、http://chaijs.com/api/bdd/#equal-sectionをチェックしてください
キーを確認したいだけの場合...
function compareKeys(a, b) {
var aKeys = Object.keys(a).sort();
var bKeys = Object.keys(b).sort();
return JSON.stringify(aKeys) === JSON.stringify(bKeys);
}
それを行う必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加