post
リクエストをテストして情報を取得し、mysqlデータベースに保存しようとしています。chaiとsupertestのあるノードnode jsが失敗しました
ここにルータがあります。
router.post('/dbInsert',(req,res,next)=>{
user = req.body;
saveUser(user).then((result)=>{
res.send('All info saved');
}).catch((e)=>{
res.send('All info not saved');
});
});
ルーターはデータを投稿しようとしてから動作します。
これでテストを実行しようとすると、エラーと表示されます。ここにテストがあります。
describe('POST /dbInsert',()=>{
it('should create a new user',(done)=>{
var fake = {
Owner : "3",
firstname : "bla",
lastname : "wassup",
email:"[email protected]",
password : "akhjashjkdadh",
token : "121212121"
}
request(app)
.post('/dbInsert')
.send(fake)
.expect(200)
.expect((res)=>{
expect(res.body).to.include(fake);
})
.end((err,res)=>{
if(err)
return done(err);
});
});
});
ここはエラーです。
1 failing
1) POST /dbInsert should create a new user:
AssertionError: expected {} to have property 'Owner'
/* Not related to the above question but just curious */
私はこれに新しいですし、またお聞きしたかったのですが、どのようにデータベースが独自データベース上でテストするが、これをテストし、偽のデータベースを持っていないのように、クローン化され、その後、自分自身を取得することができます削除されました。私はスパイを見ましたが、それを行う方法があれば分かりません。
「上記に関係していない」という質問については、[テストフィクスチャ](https://en.wikipedia.org/wiki/Test_fixture#Software)を参照していると思います。テストデータベースのフィクスチャをセットアップするには、[node-sql-fixtures](https://github.com/city41/node-sql-fixtures)のようなものを検討するか、前/後のフックでテストデータベースをセットアップするために自分で何かを書く。 – tavnab