私は、クラウドコードによる単体テストについてのチュートリアルに従ってきました。ここで私は私のコードベースを整理する方法である:私のmodel.js
ファイルでmochaを使用したサーバユニットテストの解析
cloud/
ChatMessage/
model.js
update.js
ChatRoom/
model.js
update.js
test/
test.js
、私はヘルパー関数でParse.Objectサブクラスを持っています。
私はテスト目的のためにbeforeSave機能の内容を抽出しましたfunction beforeSave(request, response) {
// Do stuff
}
Parse.Cloud.beforeSave('ChatMessage', function (request, response) {
beforeSave(request, response)
})
module.exports = {
beforeSave: beforeSave,
}
:それは私のupdate.js
ファイルには、この
class ChatMessage extends Parse.Object {
constructor() {
super('ChatMessage')
}
// Some functions
}
Parse.Object.registerSubclass('ChatMessage', ChatMessage)
module.exports = ChatMessage
のように、私は前/後に保存し、クラウドコード機能を持って見えます。それは私にモアの前に保存機能を公開することができます。記録のために、すべてこれは生産で正常に動作します。
は今、私のテストでは、私はこれを行う:const ChatMessage = require('../cloud/ChatMessage/model.js')
const ChatMessageUpdate = require('../cloud/ChatMessage/update.js')
const expect = require('expect')
describe('ChatMessage', function() {
const request = {
user: new Parse.User(),
object: new ChatMessage()
}
const response = {
success: function() {},
error: function() {}
}
describe('creation', function() {
it('should fail when the author is undefined', function() {
ChatMessageUpdate.beforeSave(request, response)
expect(response.error).toHaveBeenCalled()
})
})
})
は私がリクエストとレスポンスオブジェクトをモック。そして、私はbeforeSave関数を使ってテストを開始しようとします。そして、私は次のエラーを取得する:解析は=必要 CONST(「/ノードを解析」)
しかし、解析は以下のとおりです。
class ChatRoom extends Parse.Object { ^
ReferenceError: Parse is not defined
クイックフィックスは、このように私のモデルファイルの先頭にこれを追加することですすでに/cloud
に公開されていますので、私はこのファイルをすべてのファイルに貼り付けてコピーするのは馬鹿に思えます。私は何をすべきか ?より正確には、オブジェクト指向の構造をテストにどのように適合させるのですか?
また、(テストパフォーマンスのための)非同期テストをゼロにしてすべてのコードをテストするのに最適なコード構造は何でしょうか?
どうすればよいですか?いくつかのコードを提供できますか?ありがとう! –
のようにglobal.Parse = require( 'parse/node');あなたの仕様のどこにでも? – flovilmart
私のコードでこれを追加しようとしましたが、問題を解決しませんでした –