タグ付けされた質問 「moq」

Moqは、.NET用の強く型付けされた最小限のモックフレームワークです。

2
MoqのVerifiable()の目的は何ですか?
の目的はVerifiable()何ですか? 私がaを確認し、これを省略Mockしても、それでもを確認しSetUpます。 編集:私はVerifyAll()すべてが検証されている理由を使用していました。に変更後Verify()、私.Verifiable() SetUpのs のみがチェックされていました。
125 moq 

8
moqでConfigurationManager.AppSettingsをモックする方法
私はモックする方法がわからないコードのこの時点で行き詰まっています: ConfigurationManager.AppSettings["User"]; ConfigurationManagerをモックする必要がありますが、手掛かりがなく、Moqを使用しています。 誰かが私にチップを与えることができますか?ありがとう!
122 c#  unit-testing  moq 

3
明示的に指定したり、オーバーロードを使用したりせずに、シグニチャーにオプションの引数を持つメソッドをMoqするにはどうすればよいですか?
次のインターフェースがあるとします。 public interface IFoo { bool Foo(string a, bool b = false); } Moqを使用してそれを模擬しようとしています: var mock = new Mock<IFoo>(); mock.Setup(mock => mock.Foo(It.IsAny<string>())).Returns(false); コンパイル時に次のエラーが発生します。 式ツリーには、オプションの引数を使用する呼び出しまたは呼び出しを含めることはできません 上記の問題はMoqの問題リストの拡張として発生したことがわかり、4.5リリースに割り当てられているようです(それがいつでも)。 私の質問は、上記の問題がすぐに修正されない場合、どうすればよいですか?私のオプションは、それをモックするたびにオプションのパラメーターのデフォルト値を明示的に設定する(最初の場所で1を指定するポイントを無効にする)か、またはブール値なしでオーバーロードを作成する(私がしたように)だけですか? C#4より前)? または、誰かがこの問題を克服するためのより賢い方法に出くわしましたか?
119 c#  unit-testing  moq 

1
Moq:オーバーライドできないメンバーの無効なセットアップ:x => x.GetByTitle(“ asdf”)
これを修正する方法がわからない、メソッド「GetByTitle」で単体テストを実行しようとしています これが私の定義です: public class ArticleDAO : GenericNHibernateDAO(IArticle, int>, IArticleDAO { public IArticle GetByTitle(string title) { IQuery query = Session.CreateQuery("...") return query.UniqueResult<IArticle>(); } } public interface IArticleDAO { IArticle GetByTitle(string title); } 単体テスト: [Test] public void can_load_by_title() { _mockDaoFactory.Setup(x => x.GetArticleDao()) .Returns(_mockArticleDao.Object); _mockArticleDao.Setup(x => x.GetByTitle("some title")) .Returns(article1.Object); _articleManager.LoadArticle("some title"); Assert.IsNotNull(_articleManager.Article); } …
111 c#  nhibernate  nunit  resharper  moq 


21
単体テストでのHttpClientのモック
単体テストで使用するコードをラップしようとすると、いくつか問題があります。問題はこれです。IHttpHandlerインターフェイスがあります。 public interface IHttpHandler { HttpClient client { get; } } そしてそれを使用するクラス、HttpHandler: public class HttpHandler : IHttpHandler { public HttpClient client { get { return new HttpClient(); } } } 次に、simpleIOCを使用してクライアント実装を注入するConnectionクラス: public class Connection { private IHttpHandler _httpClient; public Connection(IHttpHandler httpClient) { _httpClient = httpClient; } } そして、私はこのクラスを持つユニットテストプロジェクトを持っています: private IHttpHandler …
110 c#  unit-testing  moq 

5
Moqを使用してASP.NET MVCのHttpContextをモックするにはどうすればよいですか?
[TestMethod] public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist() { var context = new Mock<HttpContextBase>(); var request = new Mock<HttpRequestBase>(); context .Setup(c => c.Request) .Returns(request.Object); HomeController controller = new HomeController(); controller.HttpContext = context; //Here I am getting an error (read only). ... } 私の基本コントローラーには、このrequestContextを取得するInitializeのオーバーライドがあります。私はこれを伝えようとしていますが、何か正しいことをしていません。 protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); } Moqを使用したRequestContextとHttpContextのモックに関する詳細情報はどこで入手できますか?私はクッキーと一般的なコンテキストを模倣しようとしています。


2
Moq、SetupGet、プロパティのモック
と呼ばれるUserInputEntityプロパティを含む、と呼ばれるクラスをモックしようとしColumnNamesています(他のプロパティが含まれているので、質問のために単純化しました) namespace CsvImporter.Entity { public interface IUserInputEntity { List<String> ColumnNames { get; set; } } public class UserInputEntity : IUserInputEntity { public UserInputEntity(List<String> columnNameInputs) { ColumnNames = columnNameInputs; } public List<String> ColumnNames { get; set; } } } プレゼンタークラスがあります: namespace CsvImporter.UserInterface { public interface IMainPresenterHelper { //... } public class …
94 c#  c#-4.0  properties  moq 

2
コンストラクターにパラメーターがある場合のMoqによるオブジェクトのモック
moqを使用してモックしようとしているオブジェクトがあります。オブジェクトのコンストラクターには必須パラメーターがあります。 public class CustomerSyncEngine { public CustomerSyncEngine(ILoggingProvider loggingProvider, ICrmProvider crmProvider, ICacheProvider cacheProvider) { ... } } 今、私はmoqのv3 "setup"またはv4 "Mock.Of"構文のいずれかを使用してこのオブジェクトのモックを作成しようとしていますが、これを理解できません...私が試みているすべてが検証されていません。これが私がこれまで持ってきたものですが、最後の行はモックではなく実際のオブジェクトを与えています。私がこれをしている理由は、確認したいCustomerSyncEngineのメソッドが呼び出されているためです... // setup var mockCrm = Mock.Of<ICrmProvider>(x => x.GetPickLists() == crmPickLists); var mockCache = Mock.Of<ICacheProvider>(x => x.GetPickLists() == cachePickLists); var mockLogger = Mock.Of<ILoggingProvider>(); // need to mock the following, not create a …
92 moq 

3
Moqフレームワークを使用してModelState.IsValidをモックする方法は?
次のModelState.IsValidようなEmployeeを作成するコントローラーアクションメソッドをチェック インしています。 [HttpPost] public virtual ActionResult Create(EmployeeForm employeeForm) { if (this.ModelState.IsValid) { IEmployee employee = this._uiFactoryInstance.Map(employeeForm); employee.Save(); } // Etc. } Moqフレームワークを使用した単体テストメソッドでそれを模擬したいと思います。私はそれを次のように模倣しようとしました: var modelState = new Mock<ModelStateDictionary>(); modelState.Setup(m => m.IsValid).Returns(true); しかし、これは私のユニットテストケースで例外をスローします。誰かがここで私を手伝ってくれる?

1
Moqはオブジェクトパラメータで検証します
クラスであるパラメータを検証しようとしています。テスト中のコードは問題ありません。バグはテスト中です。 私は2つの方法を試しましたが、どちらも失敗しました。 これが私の試みです: 1: this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions() { Width = 256, Height = 256, })); 2番目のパラメーターとして渡されたオブジェクトのプロパティが等しい場合でも、これは常に失敗します。最初のパラメータは正常に検証されます。 2: this.MockImageResizeFilter.Setup(m => m.Filter(It.IsAny<byte[]>(), It.IsAny<ImageFilterOptions>())) .Callback<byte[], ImageFilterOptions>((data, options) => { Assert.AreEqual(this.UploadedFileData, data, "data"); Assert.AreEqual(filterOptions.Width, options.Width, "Width"); Assert.AreEqual(filterOptions.Height, options.Height, "Height"); } ); これは、失敗した場合でも常に合格です。コールバックのAssertsは失敗しますが、例外は外部コンテキストに渡されないため、テストは常に合格します。 私が間違っていることを見つけるのを手伝ってくれませんか?
86 c#  .net  unit-testing  moq 

14
モックとユニットテストに必要なときにSqlExceptionをスローする方法は?
プロジェクトでいくつかの例外をテストしようとしていますが、キャッチした例外の1つはSQlExceptionです。 行くことができないようですnew SqlException()ので、特にデータベースを呼び出さずに例外をスローする方法がわかりません(これらは単体テストであるため、通常はデータベースを呼び出さないことをお勧めします)。 NUnitとMoqを使用していますが、これを偽造する方法がわかりません。 すべてADO.NETに基づいているように見えるいくつかの回答に応答して、Linq toSqlを使用していることに注意してください。そのため、舞台裏のようなものです。 @MattHamiltonからの要求に応じた詳細情報: System.ArgumentException : Type to mock must be an interface or an abstract or non-sealed class. at Moq.Mock`1.CheckParameters() at Moq.Mock`1..ctor(MockBehavior behavior, Object[] args) at Moq.Mock`1..ctor(MockBehavior behavior) at Moq.Mock`1..ctor() モックアップしようとすると最初の行に投稿します var ex = new Mock<System.Data.SqlClient.SqlException>(); ex.SetupGet(e => e.Message).Returns("Exception message");

5
インデックス付きプロパティをMOQする方法
インデックス付きプロパティへの呼び出しをモックしようとしています。つまり、私は以下をmoqしたいと思います: object result = myDictionaryCollection["SomeKeyValue"]; また、セッター値 myDictionaryCollection["SomeKeyValue"] = myNewValue; アプリが使用するクラスの機能をモックする必要があるため、これを行っています。 誰かがMOQでこれを行う方法を知っていますか?私は以下のバリエーションを試しました: Dictionary<string, object> MyContainer = new Dictionary<string, object>(); mock.ExpectGet<object>( p => p[It.IsAny<string>()]).Returns(MyContainer[(string s)]); しかし、それはコンパイルされません。 私がMOQで達成しようとしていることは可能ですか?誰かが私がこれを行う方法の例を持っていますか?
82 c#  tdd  mocking  moq 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.