私はいくつかの関数でchanged()関数を使用しています。functions.database.DeltaSnapshot#予期しない結果が変更されました
問題を説明するために、次のファイルにいくつかのテストを追加しました。 https://github.com/firebase/firebase-functions/blob/master/src/providers/database.ts
it('should be false when the current value has not changed',() => {
populate({ a: { b: 'c' } }, { a: { b: 'c' } });
expect(subject.child('a').changed()).to.be.false;
});
it('should be false when the current value has not changed, child path exists',() => {
populate({ a: { b: 'c' } }, { a: { b: 'c' } });
expect(subject.child('a/b').changed()).to.be.false;
});
it('should be false when the current value has not changed, child path does not exist',() => {
populate({ a: { b: 'c' } }, { a: { b: 'c' } });
expect(subject.child('a/d').changed()).to.be.false;
});
最初の2つのテストが失敗し、しかし、私は変更()関数はfalseを返すように期待。私はドキュメントを誤解していますか?クラウド関数のFirebase SDKのユニットテストで
参考文献https://firebase.google.com/docs/reference/functions/functions.database.DeltaSnapshot#changed
これは実世界で失敗したか、単体テストでしか生きていないのですか? 'populate()'はあなたが思っているようなことをしていません - 最初の引数は古いデータ、2番目の引数は新しいデータへの**デルタ**です。変更されていないものは2番目の引数に含まれていてはいけません。そのため、テストが失敗しています。 –
ええ、ちょうど単体テスト、その意味は、署名は 'データ、デルタ'です。 – dre
@MichaelBleighあなたは答えとしてあなたのコメントを提供できますか? –