0
は、私は、静的メソッドがある(app/models/fruit.js
で)単純なオブジェクトがあります。Ember qUnitでどのようにクラス関数をテストできますか?
import Ember from 'ember';
const Fruit = Ember.Object.extend({
});
Fruit.reopenClass({
createFruit() {
}
}
export default Fruit;
を、私は(tests/unit/models/fruit-test.js
で)テストを持っている:
import Ember from 'ember';
import { moduleFor, test } from 'ember-qunit';
moduleFor('model:fruit', 'Unit | Model | fruit', {
});
test('has static method', function(assert) {
let model = this.subject();
assert.ok(model.createFruit);
});
をするので、これは正しく失敗した - 私はそれを理解します - model
は、クラスそのものではなく、クラスの実際のインスタンスです。
これはtesting docsに記載されている:
テストヘルパーは、このようなテストの下で検索して私たちのオブジェクトのインスタンス化を処理対象の関数として、いくつかの便利さを提供してくれる。
あなたはコンポーネントインスタンスに直接アクセスすることはできません。
インスタンスメソッド/プロパティの代わりにクラス関数/プロパティをテストするにはどうすればよいですか?
私はクラスが
this
のどこかに保存されるかもしれないと思ったが、これは非常に単純なアプローチであるこの場合、「moduleFor」を持たないことで逃げることができるのだろうか?それはあなたが使用するつもりはない、バックグラウンドでインスタンスを作成することは少し無駄に思えますが、オブジェクトがインスタンス化されていない静的メソッドをテストするためのよりクリーンな方法があるのだろうかと思います –