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

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


3
メソッドに渡された戻り値
インターフェイスにメソッドがあります: string DoSomething(string whatever); これをMOQでモックして、渡されたものをすべて返すようにしたい-次のようなもの: _mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ; 何か案は?
391 c#  mocking  moq 

4
Moqにタスクを返すように指示するにはどうすればよいですか?
宣言するインターフェースを持っています Task DoSomethingAsync(); 私のテストではMoqFrameworkを使用しています: [TestMethod()] public async Task MyAsyncTest() { Mock<ISomeInterface> mock = new Mock<ISomeInterface>(); mock.Setup(arg => arg.DoSomethingAsync()).Callback(() => { <my code here> }); ... } 次に、テストでを呼び出すコードを実行しますawait DoSomethingAsync()。そして、テストはその行で失敗します。何が悪いのですか?

11
Moqでのout / refパラメーターの割り当て
Moq(3.0以降)を使用してout/ refパラメーターを割り当てることは可能ですか? 私は使用を検討しましたが、ジェネリックに基づいているため、refパラメーターをサポートしてCallback()いAction<>ません。またIt.Is、refパラメーターの入力に制約()を設定することもできますが、コールバックで実行できます。 Rhino Mocksがこの機能をサポートしていることは知っていますが、私が取り組んでいるプロジェクトはすでにMoqを使用しています。
293 c#  parameters  moq  ref  out 

7
Moqで最初と2回目に異なる戻り値
私はこのようなテストをしています: [TestCase("~/page/myaction")] public void Page_With_Custom_Action(string path) { // Arrange var pathData = new Mock<IPathData>(); var pageModel = new Mock<IPageModel>(); var repository = new Mock<IPageRepository>(); var mapper = new Mock<IControllerMapper>(); var container = new Mock<IContainer>(); container.Setup(x => x.GetInstance<IPageRepository>()).Returns(repository.Object); repository.Setup(x => x.GetPageByUrl<IPageModel>(path)).Returns(() => pageModel.Object); pathData.Setup(x => x.Action).Returns("myaction"); pathData.Setup(x => x.Controller).Returns("page"); var resolver …
262 c#  unit-testing  nunit  moq 

3
Moqを使用して単体テストの非同期メソッドをモックする
Web API呼び出しを行うサービスのメソッドをテストしています。HttpClientローカルでWebサービス(ソリューションの別のプロジェクトにある)も実行している場合は、単体テストで通常の方法を使用するとうまくいきます。 ただし、変更をチェックインすると、ビルドサーバーはWebサービスにアクセスできないため、テストは失敗します。 私は、ユニットテスト用にIHttpClientインターフェイスを作成し、アプリケーションで使用するバージョンを実装することで、これを回避する方法を考案しました。単体テストでは、モック化された非同期postメソッドを使用して、モック化されたバージョンを完成させます。ここで問題が発生しました。HttpStatusResultこの特定のテストに対してOKを返したいのですが。別の同様のテストでは、悪い結果が返されます。 テストは実行されますが、完了することはありません。待ちに待っています。私は非同期プログラミング、デリゲート、Moq自体に不慣れで、しばらくの間SOとグーグルを検索してきましたが、まだこの問題を乗り越えられないようです。 これが私がテストしようとしている方法です: public async Task<bool> QueueNotificationAsync(IHttpClient client, Email email) { // do stuff try { // The test hangs here, never returning HttpResponseMessage response = await client.PostAsync(uri, content); // more logic here } // more stuff } これが私の単体テスト方法です: [TestMethod] public async Task QueueNotificationAsync_Completes_With_ValidEmail() { Email email …

6
「非仮想(VBでオーバーライド可能)メンバーの設定が無効です...」というメッセージの例外が表示されるのはなぜですか?
ブール型を返す非仮想メソッドをモックする必要がある単体テストがあります public class XmlCupboardAccess { public bool IsDataEntityInXmlCupboard(string dataId, out string nameInCupboard, out string refTypeInCupboard, string nameTemplate = null) { return IsDataEntityInXmlCupboard(_theDb, dataId, out nameInCupboard, out refTypeInCupboard, nameTemplate); } } だから私はXmlCupboardAccessクラスのモックオブジェクトがあり、以下に示すように私のテストケースでこのメソッドのモックをセットアップしようとしています [TestMethod] Public void Test() { private string temp1; private string temp2; private Mock<XmlCupboardAccess> _xmlCupboardAccess = new Mock<XmlCupboardAccess>(); _xmlCupboardAccess.Setup(x => …
176 c#  unit-testing  moq 

7
Moqによる拡張メソッドのモック
既存のインターフェースがあります... public interface ISomeInterface { void SomeMethod(); } ミックスインを使用してこのインターフェースを拡張しました... public static class SomeInterfaceExtensions { public static void AnotherMethod(this ISomeInterface someInterface) { // Implementation here } } 私はテストしたいこれを呼び出すクラスがあります... public class Caller { private readonly ISomeInterface someInterface; public Caller(ISomeInterface someInterface) { this.someInterface = someInterface; } public void Main() { someInterface.AnotherMethod(); } } …

9
ASP.Net MVCでコントローラーの要求をモックする方法は?
ASP.Net MVCフレームワークを使用したC#のコントローラーがあります public class HomeController:Controller{ public ActionResult Index() { if (Request.IsAjaxRequest()) { //do some ajaxy stuff } return View("Index"); } } 私はモックに関するいくつかのヒントを得て、以下とRhinoMocksでコードをテストしたいと思っていました var mocks = new MockRepository(); var mockedhttpContext = mocks.DynamicMock<HttpContextBase>(); var mockedHttpRequest = mocks.DynamicMock<HttpRequestBase>(); SetupResult.For(mockedhttpContext.Request).Return(mockedHttpRequest); var controller = new HomeController(); controller.ControllerContext = new ControllerContext(mockedhttpContext, new RouteData(), controller); var result …


5
Moqを使用した特定のパラメーターの確認
public void SubmitMessagesToQueue_OneMessage_SubmitSuccessfully() { var messageServiceClientMock = new Mock<IMessageServiceClient>(); var queueableMessage = CreateSingleQueueableMessage(); var message = queueableMessage[0]; var xml = QueueableMessageAsXml(queueableMessage); messageServiceClientMock.Setup(proxy => proxy.SubmitMessage(xml)).Verifiable(); //messageServiceClientMock.Setup(proxy => proxy.SubmitMessage(It.IsAny<XmlElement>())).Verifiable(); var serviceProxyFactoryStub = new Mock<IMessageServiceClientFactory>(); serviceProxyFactoryStub.Setup(proxyFactory => proxyFactory.CreateProxy()).Returns(essageServiceClientMock.Object); var loggerStub = new Mock<ILogger>(); var client = new MessageClient(serviceProxyFactoryStub.Object, loggerStub.Object); client.SubmitMessagesToQueue(new List<IMessageRequestDTO> {message}); //messageServiceClientMock.Verify(proxy …
169 c#  unit-testing  nunit  moq 

3
Moqを使用してメソッドが呼び出されたかどうかを判別する
より高いレベルのメソッドを呼び出すと、メソッド呼び出しが発生することをテストできることは理解しています。つまり、 public abstract class SomeClass() { public void SomeMehod() { SomeOtherMethod(); } internal abstract void SomeOtherMethod(); } 私が呼び出すSomeMethod()場合、それSomeOtherMethod()が呼び出されることを期待しているかをテストしたいと思います。 この種のテストはモックフレームワークで利用できると思いますか?
159 c#  .net  unit-testing  mocking  moq 

1
Moqを使用してメソッド呼び出しを確認する
私はC#での単体テストとMoqの使い方を学ぶのが初めてです。以下は、私がテストしようとしているクラスです。 class MyClass { SomeClass someClass; public MyClass(SomeClass someClass) { this.someClass = someClass; } public void MyMethod(string method) { method = "test" someClass.DoSomething(method); } } class Someclass { public DoSomething(string method) { // do something... } } 以下は私のTestClassです: class MyClassTest { [TestMethod()] public void MyMethodTest() { string action="test"; Mock<SomeClass> mockSomeClass …
142 c#  testing  methods  moq 

3
入力パラメーターを指定しないMoqモックメソッド
Moqを使用したテストにいくつかのコードがあります。 public class Invoice { ... public bool IsInFinancialYear(FinancialYearLookup financialYearLookup) { return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate; } ... } だからユニットテストで私はこのメソッドをモックして真を返すようにしています mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true); とにかくこの行を書くので、への入力を指定する必要はありませんIsInFinancialYear。すなわち。コードに入力パラメータがないので、渡されたものは何でもtrueを返しますか?
133 c#  mocking  moq 

13
ASP.NET CoreでILoggerを使用してユニットテストを行う方法
これは私のコントローラーです: public class BlogController : Controller { private IDAO<Blog> _blogDAO; private readonly ILogger<BlogController> _logger; public BlogController(ILogger<BlogController> logger, IDAO<Blog> blogDAO) { this._blogDAO = blogDAO; this._logger = logger; } public IActionResult Index() { var blogs = this._blogDAO.GetMany(); this._logger.LogInformation("Index page say hello", new object[0]); return View(blogs); } } ご覧のとおり、a IDAOとaの2つの依存関係があります。ILogger これが私のテストクラスです。xUnitを使用してテストし、Moqを使用してモックとスタブを作成します。DAO簡単にモックを作成できますが、ILogger何をすべきかわからないので、nullを渡してコメントをコメントアウトし、コントローラにログインします。テストを実行するとき。テストする方法はありますが、それでもロガーを維持しますか? public class …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.