0
TypescriptのAngular 2(RC4)で単位テストを実装しています。テストするサービス(「計算」)は、他の多くのコンポーネント(「Bausparen」)を使用し、コンポーネント(「BausparenInput」)を使用します。すべてのコンポーネントは@Injectable()で宣言されています。角2単位テスト:Typemoqオブジェクトを挿入する
私は、Typemoqを使ってBausparenのような依存するコンポーネントを模擬し、テストを実行する前にそれらを注入しようとしました。とにかく、それは動作しません:
let calcInput = x => x.calc(TypeMoq.It.isAnyNumber(), TypeMoq.It.isAnyNumber());
let calcInputFormer = x => x.calc(TypeMoq.It.isAnyNumber(), TypeMoq.It.isAnyNumber(), TypeMoq.It.isAnyNumber());
let calcOutput = (y, m) => new CalcOutput();
let calcOutputFormer = (y, m, f) => new CalcOutput();
let bausparenMock = TypeMoq.Mock.ofType(Bausparen);
bausparenMock.setup(calcInput).returns(calcOutput);
bausparenMock.setup(calcInputFormer).returns(calcOutputFormer);
beforeEach(() => {
addProviders([CalculationService,
{ provide: Bausparen, useClass: bausparenMock }]);
});
it('should return empty array when fromYear > toYear',
inject([CalculationService], (calculation: CalculationService) => {
let result = calculation.getValues(6, 2017, 6, 2016);
expect(result.length).toBe(0);
}));
をモックするクラスの署名はこれです::機能を説明
FAILED TESTS:
Calculation Service
× should return empty array when fromYear > toYear
PhantomJS 2.1.1 (Windows 7 0.0.0)
factory
factory
resolveReflectiveFactory
resolveReflectiveProvider
[email protected][native code]
[email protected][native code]
[email protected][native code]
[email protected][native code]
Call
map
resolveReflectiveProviders
resolve
resolveAndCreateChild
createInjector
execute
Jasminesの内部では、コードは次のようになります
class Bausparen implements Calculation {
calc(year: number, month: number, formerAmount?: number): CalcOutput {...}
}
エラーメッセージは実際には何も教えてくれません。私のモックのセットアップやインジェクションに問題がある場合でも、私は得られません。誰も以前に同様のエラーがあったのですか?
作品を見て値ではありませんので! –