誰もがMongoose検証をテストする方法を知っていますか? validateEmail方法は、このようなのように定義されるMongooseJs検証のテスト
var UserAccount = new Schema({
user_name : { type: String, required: true, lowercase: true, trim: true, index: { unique: true }, validate: [ validateEmail, "Email is not a valid email."] },
password : { type: String, required: true },
date_created : { type: Date, required: true, default: Date.now }
});
:
// Email Validator
function validateEmail (val) {
return /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(val);
}
Iの検証をテストする(例として)
例は、私は、次のスキーマを持っています。最終的な結果は、検証をテストできるようにするために、起こっていることに応じて、これらのコード間の相互作用をテストする他のテストを書くことができます。例:ユーザーが取得したユーザー名と同じユーザー名でサインアップしようとしています(既に使用中の電子メール)。私は実際に傍受することができるテストが必要です、または、検証はDBを打つことなく動作していることがわかります。私はこれらのテスト中にMongoを打ちたいとは思わない。 UNITテストではなく、統合テストでなければなりません。 :)
ありがとう!
最後のカップルのためにユーザーに電話をかけるテストの数。validate():私はgruntとJasmine Nodeを使用してテストを実行しています。私のアサーションはビルドに失敗することはありませんでした。アサーションを適切に実行させるためにコールバックのテストをセットアップしなければなりませんでした。私のケースでは、jasmine-nodeを使用して、各テストの終わりにjasmine.asyncSpecWait()を追加し、validateコールバック内にjasmine.asyncSpecDone()を追加しました。それからすべてがよかった。非常に有用な答え! –