Jak sprawdzić, czy ta metoda NIE została wywołana w Moq ? Czy ma coś takiego jak AssertWasNotCalled? AKTUALIZACJA: Począwszy od wersji 3.0 można zastosować nową składnię: mock.Verify(foo => foo.Execute("ping"), Times.Never());
Mam metodę interfejsu: string DoSomething(string whatever); Chcę się z tego wyśmiewać za pomocą MOQ, aby zwracało to, co zostało przekazane - coś w stylu: _mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ; Jakieś pomysły?
Mam interfejs, który deklaruje Task DoSomethingAsync(); Używam MoqFramework do moich testów: [TestMethod()] public async Task MyAsyncTest() { Mock<ISomeInterface> mock = new Mock<ISomeInterface>(); mock.Setup(arg => arg.DoSomethingAsync()).Callback(() => { <my code here> }); ... } Następnie w teście wykonuję kod, który się wywołuje await DoSomethingAsync(). A test po prostu kończy się niepowodzeniem …
Czy można przypisać parametr out/ refprzy użyciu Moq (3.0+)? Patrzyłem na używanie Callback(), ale Action<>nie obsługuje parametrów ref, ponieważ jest oparty na ogólnych. Wolałbym również umieścić ograniczenie ( It.Is) na wejściu refparametru, chociaż mogę to zrobić w wywołaniu zwrotnym. Wiem, że Rhino Mocks obsługuje tę funkcję, ale projekt, nad którym …
Mam taki test: [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"); …
Testuję metodę usługi, która wykonuje APIpołączenie internetowe . Używanie normalnego HttpClientdziała dobrze w testach jednostkowych, jeśli lokalnie uruchamiam również usługę internetową (znajdującą się w innym projekcie w rozwiązaniu). Jednak po wpisaniu zmian serwer kompilacji nie będzie miał dostępu do usługi sieci Web, więc testy zakończą się niepowodzeniem. Rozwiązałem ten problem …
Mam test jednostkowy, w którym muszę mockować metodę niewirtualną, która zwraca typ 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); } } Mam więc pozorowany obiekt XmlCupboardAccessklasy i próbuję skonfigurować …
Mam już istniejący interfejs ... public interface ISomeInterface { void SomeMethod(); } i rozszerzyłem tę intreface za pomocą miksera ... public static class SomeInterfaceExtensions { public static void AnotherMethod(this ISomeInterface someInterface) { // Implementation here } } Mam klasę, która to nazywa, którą chcę przetestować ... public class Caller { …
Mam kontroler w C # przy użyciu struktury ASP.Net MVC public class HomeController:Controller{ public ActionResult Index() { if (Request.IsAjaxRequest()) { //do some ajaxy stuff } return View("Index"); } } Dostałem kilka wskazówek na temat kpiny i miałem nadzieję przetestować kod za pomocą poniższych i RhinoMocks var mocks = new MockRepository(); …
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 …
Wyobraź sobie tę klasę 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 w teście Foo, w jaki sposób mógłbym sprawdzić, co Bar()przeszło _h.AsyncHandle?
Rozumiem, że mogę sprawdzić, czy wywołanie metody nastąpi, jeśli wywołam metodę wyższego poziomu, tj .: public abstract class SomeClass() { public void SomeMehod() { SomeOtherMethod(); } internal abstract void SomeOtherMethod(); } Chcę sprawdzić, czy jeśli zadzwonię SomeMethod(), spodziewam się, że SomeOtherMethod()zostanie wezwany. Czy mam rację, myśląc, że ten rodzaj testu …
Jestem całkiem nowy w testowaniu jednostkowym w C # i uczę się używać Moq. Poniżej znajduje się klasa, którą próbuję przetestować. 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 …
Mam kod w teście przy użyciu Moq: public class Invoice { ... public bool IsInFinancialYear(FinancialYearLookup financialYearLookup) { return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate; } ... } Więc w teście jednostkowym próbuję kpić z tej metody i sprawić, by zwróciła prawdę mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true); Czy jest tak, aby napisać …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.