問題タブ [irepository]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
92 参照

c# - IRepository と関連データ?

数週間前、就職の面接のテストを受けたばかりですが、現時点では解決できないと思われる 1 つの点を除いて、ほぼすべて解決しました。しかし、確かに私は間違っています。

この問題は関連データを扱います。私たちのサーバー API である IRepository は、直下の子を持つノードのみを返します (たとえば、FakeRepository がデータベースからロードされているとします。このテストのために FakeRepository のコードを変更してはなりません)。

NodeManager がクライアント側のコードであると想像してください。

クライアントに特定のオブジェクトのインスタンスが 1 つだけ存在するようにして、クライアントがアプリケーション内のデータを一貫して表示できるようにする必要があります。テスト「LoadingNodeB_ShouldAlwaysReturnTheSameInstance()」は、この問題を示しています。このテストに合格するように NodeManager のコードを変更します。

だから、私たちはこのIRepoを持っています

テストプロジェクトには、情報をロードする偽のリポジトリがあります。

問題は、リポジトリのみを変更できるということです。他のコードに触れることはできません。

それだけです。

解決方法を知りたいだけです。

github リポジトリを作成しましたhttps://github.com/rothariger/TestRecruitment

よろしく!

0 投票する
1 に答える
51 参照

c# - リポジトリのモックには仮想関数が必要であり、IRepository のモックは既存の関数をオーバーライドするのはなぜですか?

NUnit と Moq フレームワークを使用して単体テストを行っています。mockRepo.Setup(x=>x.GetStr(It.IsAny)()).Returns(str) を使用して IRepository をモックしようとすると、テスト対象のメソッドが Repository クラス内でオーバーライドされ、ビルドが失敗します。しかし、仮想としてテストされるメソッドを作成するリポジトリをモックすると、代わりに IRepository をモックすると、データがモックされてテストが実行されます。