Come posso verificare che il metodo NON sia stato chiamato in Moq ? Ha qualcosa come AssertWasNotCalled? AGGIORNAMENTO: a partire dalla versione 3.0, è possibile utilizzare una nuova sintassi: mock.Verify(foo => foo.Execute("ping"), Times.Never());
Ho un metodo su un'interfaccia: string DoSomething(string whatever); Voglio deridere questo con MOQ, in modo che ritorni tutto ciò che è stato passato - qualcosa del tipo: _mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ; Qualche idea?
Ho un'interfaccia che dichiara Task DoSomethingAsync(); Sto usando MoqFramework per i miei test: [TestMethod()] public async Task MyAsyncTest() { Mock<ISomeInterface> mock = new Mock<ISomeInterface>(); mock.Setup(arg => arg.DoSomethingAsync()).Callback(() => { <my code here> }); ... } Quindi nel mio test eseguo il codice che invoca await DoSomethingAsync(). E il test fallisce …
È possibile assegnare un out/ref parametro usando Moq (3.0+)? Ho esaminato l'utilizzo Callback(), ma Action<>non supporta i parametri ref perché si basa sui generici. Preferirei anche mettere un vincolo ( It.Is) sull'input del refparametro, anche se posso farlo nel callback. So che Rhino Mocks supporta questa funzionalità, ma il progetto …
Ho un test come questo: [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 …
Sto testando un metodo per un servizio che effettua una APIchiamata Web . L'uso normale HttpClientfunziona bene per i test unitari se eseguo anche il servizio Web (situato in un altro progetto nella soluzione) localmente. Tuttavia, quando eseguo il check-in delle mie modifiche, il server di compilazione non avrà accesso …
Ho un test unitario in cui devo prendere in giro un metodo non virtuale che restituisce un tipo bool 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); } } Quindi ho …
Ho un'interfaccia preesistente ... public interface ISomeInterface { void SomeMethod(); } e ho esteso questa intreface usando un mixin ... public static class SomeInterfaceExtensions { public static void AnotherMethod(this ISomeInterface someInterface) { // Implementation here } } Ho una lezione che si chiama così e che voglio testare ... public …
Ho un controller in C # usando il framework ASP.Net MVC public class HomeController:Controller{ public ActionResult Index() { if (Request.IsAjaxRequest()) { //do some ajaxy stuff } return View("Index"); } } Ho avuto alcuni consigli sul deridere e speravo di testare il codice con il seguente e RhinoMocks var mocks = …
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 …
Immagina questa classe public class Foo { private Handler _h; public Foo(Handler h) { _h = h; } public void Bar(int i) { _h.AsyncHandle(CalcOn(i)); } private SomeResponse CalcOn(int i) { ...; } } Mo (q) cking Handler in un test di Foo, come potrei controllare a cosa Bar()è passato _h.AsyncHandle?
Comprendo che posso verificare che si verifichi una chiamata di metodo se chiamo un metodo di livello superiore, ovvero: public abstract class SomeClass() { public void SomeMehod() { SomeOtherMethod(); } internal abstract void SomeOtherMethod(); } Voglio provare che se chiamo SomeMethod()allora mi aspetto che SomeOtherMethod()verrà chiamato. Ho ragione nel pensare …
Sono abbastanza nuovo nei test unitari in C # e sto imparando ad usare Moq. Di seguito è la classe che sto cercando di testare. class MyClass { SomeClass someClass; public MyClass(SomeClass someClass) { this.someClass = someClass; } public void MyMethod(string method) { method = "test" someClass.DoSomething(method); } } class …
Ho un po 'di codice in un test usando Moq: public class Invoice { ... public bool IsInFinancialYear(FinancialYearLookup financialYearLookup) { return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate; } ... } Quindi in un unit test sto cercando di deridere questo metodo e farlo tornare vero mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true); C'è …
Questo è il mio controller: 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); } } Come …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.