1

私はジャスミンが初めてで、mongodb操作のテストを書きたいと思っています。

.spec.jsdirectory の下にいくつかのファイルがspecあり、それらの中のすべてのテストがテスト データベースを削除し、いくつかのテスト データを挿入するとします。

コードをどのように整理すればよいですか? どこかでメソッドを定義して、init()他のすべてのテストから呼び出しますか? または、より良い解決策はありますか?

4

1 に答える 1

1

内部では、通常どおりテスト フレームワークをdescribe呼び出すことができます。これは、テストの前提条件の設定と破棄を行うのに適した場所です。beforeEachafterEach

例えば:

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'});
});
于 2012-05-09T16:29:28.780 に答える