2016-12-06 7 views
2

イメージ(ファイルパスではなくイメージタイプ)を仮想マシンスタックにロードするメソッドを単体テストしようとしています。Drawing.Image Moqまたは単体テストでは許可されていませんか?

私はこのようになりますVerifyコールがあります。以下のStack.Pushコール天気を確認するために

mockVM.Verify(q => q.Stack.Push(It.IsAny<Image>()), Times.AtLeastOnce());

は、テスト対象のメソッドで発生しました。この方法の関連部分はこのようにしている:タイプとして画像を使用するために、私は完全に罰金System.Drawingを使用していますテスト中の

クラスで
Image newImage = Image.FromFile(@"" + Operands[0]); 
VirtualMachine.Stack.Push(newImage); 
Console.WriteLine("Hit loadimage"); 

ユニットテストコードでは、System.Drawingまたはその変形を使用していますが、It.IsAny<Image>()の画像の下にエラーが表示されます。

型または名前空間名「イメージ」(あなたがusingディレクティブまたはアセンブリ参照 不足している?)

私はタイプの画像のオブジェクトが配置されたことを確認したく見つかりませんでしたスタック上では、タイプとしてImageを使用することができないという問題があり、進展できません。

ユニットテストでSystem.Drawingを使用できない理由はありますか?または、私の目標を達成するための簡単な方法があります。

+0

はIt.IsAnyの構文ではありません... 'It.IsAny ()'? – Kritner

+0

私はタイプするとそのまま変更しました、はい。しかし、良いキャッチ。 – James

+1

あなたはエラーが発生していると言いますが、エラーを指定していません – Kritner

答えて

2

System.Drawingは、ユニットテストプロジェクトの参照としてデフォルトでは含まれていない可能性がありますが、他のプロジェクトタイプにはデフォルトで含まれている可能性があります。

ユニットテストプロジェクトでSystem.Drawingへの参照があることを確認したら、適切な名前空間を使用した後にImageを解決できるはずです。新しいプロジェクトとユニットテストプロジェクトのデフォルトの参照を使用して

例:

enter image description here

+0

お金を賭けた。 UnitTestProjectリファレンスでは、テスト対象プロジェクトのデフォルトでは生成されませんでした。参照に手動で追加すると 'using System.Drawing; 'を使うことができました。とても有難い。 – James

関連する問題