[解決済み] moqオブジェクト ReturnsメソッドはNULLオブジェクトを返すべき
2023-05-27 18:37:21
質問
私はWeb APIを開発しています。私が考え出したテストの1つは、クライアントが物理テストID(物理テストは私が探しているリソースです)でGET操作を行い、その物理テストが見つからない場合、Web APIは404ステータスを返すべきであるということです。
現在、私はテストにmoqフレームワークを使用しており、次のようなコードを持っています。
[TestMethod]
public void then_if_physical_test_not_found_return_not_found_status()
{
var unitOfWork = new Mock<IUnitOfWork>();
var repository = new Mock<IRepository<PhysicalTest>>();
repository.Setup(r => r.FindById(It.IsAny<int>())).Returns();
unitOfWork.Setup(m => m.PhysicalTests).Returns(repository.Object);
var pt = new PhysicalTestResource(unitOfWork.Object);
HttpResponseMessage<PhysicalTest> response = pt.GetPhysicalTest(43);
Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode)
}
Returns()メソッドがnullオブジェクトを返す必要があります。これは、リソースが見つからない場合に実際のAPIメソッドが返すことになるものです。
Returns()メソッドのパラメータとしてnullを送信しようとしましたが、成功しませんでした。
どのように解決するのですか?
エラーが何であったかが示されていませんが、これでうまくいくはずです。
unitOfWork.Setup(m => m.PhysicalTests).Returns((IRepository<PhysicalTest>)null);
で呼び出そうとしたのではないでしょうか?
Returns(null)
で呼び出そうとすると、コンパイラが文句を言う。
Returns
はオーバーロードされており,どのメソッドが呼ばれるべきかがわからないため,コンパイラが文句を言うことになる。 特定の型にキャストすることで、曖昧さが解消されます。
関連
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] Moqでメソッドが呼び出されていないことを確認する方法は?
-
[解決済み] Moqにタスクを返すように指示するにはどうしたらいいですか?
-
[解決済み】Web Api コントローラから http ステータスコードを返す。
-
[解決済み】Moqを使用してユニットテストの非同期メソッドをモック化する
-
[解決済み] 入力パラメータを指定しないMoqモック法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】C#で四捨五入する方法
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】プロセスが実行されているかどうかを知るには?