私はジャスミンが初めてで、mongodb操作のテストを書きたいと思っています。
.spec.js
directory の下にいくつかのファイルがspec
あり、それらの中のすべてのテストがテスト データベースを削除し、いくつかのテスト データを挿入するとします。
コードをどのように整理すればよいですか? どこかでメソッドを定義して、init()
他のすべてのテストから呼び出しますか? または、より良い解決策はありますか?
私はジャスミンが初めてで、mongodb操作のテストを書きたいと思っています。
.spec.js
directory の下にいくつかのファイルがspec
あり、それらの中のすべてのテストがテスト データベースを削除し、いくつかのテスト データを挿入するとします。
コードをどのように整理すればよいですか? どこかでメソッドを定義して、init()
他のすべてのテストから呼び出しますか? または、より良い解決策はありますか?
内部では、通常どおりテスト フレームワークをdescribe
呼び出すことができます。これは、テストの前提条件の設定と破棄を行うのに適した場所です。beforeEach
afterEach
例えば:
describe('My Module', function () {
beforeEach(function () {
...
});
afterEach(function () {
...
});
it('...', function () { ... });
});
いずれにせよ、ベスト プラクティスは、実際には db 操作を行わないことです。おそらく、既にテスト済みのライブラリを使用していると思われます。データベース層をモックすると、多くの手間が省けます。spiesを使用すると、ジャスミンでこれを効果的に行うことができます。
たとえば、db レイヤーにget(id)
json を返す関数があるとします。あなたがやっている可能性があります:
it('can access the db', function () {
var spy = spyOn(db, 'get').andCallFake(function (id) {
expect(id).toEqual('foo');
return {title: 'Foo Bar'};
});
// Something here does stuff that would result to a call to db.get
var res = db_calling_function('foo');
expect(spy).toHaveBeenCalled();
expect(res).toEqual({title: 'Foo Bar'});
});