I am doing unit testing using NUnit and Moq framework. When I try to mock the IRepository using mockRepo.Setup(x=>x.GetStr(It.IsAny)()).Returns(str) then the method which is to be tested gets overridden inside Repository class and the build fails. But instead mocking the IRepository if I mock the Repository making the method which is to be tested as virtual then the data is getting mocked and the test runs.
Why mocking a Repository requires a virtual function and mocking IRepository overrides the existing function?
257 Views Asked by Krits At
1
There are 1 best solutions below
Related Questions in C#
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in ASP.NET-CORE
- Windows environment variables at appsettings.json
- Which approach is right while creating a service for your update method?
- New Blazor Web App, Password Reset "A valid antiforgery token was not provided"
- No webpage was found for the web address: https://localhost:7002/Category/Add?area=Admin. Why is my URL generated like ?area=Admin instead of /Admin/
- how to get the html for a tag helper in code
- How to share authorization implemented in the server project with the client project in Blazor Web App Auto project?
- Why https is disabled on publish in .NET Core 7.0
- How to set language in a server-side rendering blazor app
- How can I debug server side rendering blazor code in a component?
- ASP.NET Core 6 randomly returning 200 with empty response
- ASP.NET Core MVC : NullReferenceException: Object reference not set to an instance of an object
- ASP.NET Core Identity Custom Register Endpoint
- VS Community 2022 cannot install dotnet-ef when i try to publish
- How does ASP.NET Core Identity ensure username is unique under concurrent conditions?
- In clean architecture, is the presentation layer allowed to communicate directly with the infrastructure layer?
Related Questions in NUNIT
- SQLite Nunit Tests is showing me data seeded on Application DB Context
- The problem related to unit test CSharp , Moq
- Nunit4 is not working with Json Testcase parameter
- Nunit TestCase attribute with Jagged Array ? c#
- Mocking a record
- why does NUnit test project doesn't recognize as a project in visual studio
- Selenium runs very slow with headed web driver in VS debug mode and NUnit test run
- Playwright test runsettings not taking effect (Headless = False yet still runs Headless)
- How to run all Unit Tests that DON'T have a trait?
- NUnit, Im using mediator, how can a test my mediator Handler using NUnit
- Facing errors during the unit test for sample .NET micro-service (vb)
- NUnit Unit Tests + TestContainers = global `OneTimeSetup` and `OneTimeTearDown`
- When starting a Nunit project from the command line, searches for files along the nunit3-console path
- nunit3-console doesn't see DLLs from Microsoft.AspNETCore.App
- many-to-many relation not returning any
Related Questions in MOQ
- Should I add the nupkg dependencies of the Assembly of the SUT to the Test Project as well?
- Mocking FunctionContext in Azure blob trigger function unit tests in .net 8
- Mocking a record
- Stop Moq NuGet package searching for source
- How do I trigger a specific condition inside a method if I cannot inject a mocked object into it?
- Setup a method on a mock which has a parameter which is an async function expression
- Why don't form fields get returned from this HttpContext mock
- xunit and mock returns null instead of string
- Unit test for function with func param using C# and Moq
- How to mock a Generics<T> class that actually used to fetch data from database
- Raise event of mocking object and passing there as argument object used for calling method
- AutoFixture is unable to create an instance of a class that has a property of type RestSharp.RestResponse
- C# Moq unable to return correct value
- Xunit testing restsharp with Moq
- How to call service class in mock Framework with x-unit method ASP Web API .Net 6?
Related Questions in IREPOSITORY
- IRepository<T> and Repository-Per-Entity
- C# Shared Transactions and NHibernate using IRepository
- Why mocking a Repository requires a virtual function and mocking IRepository overrides the existing function?
- How do I store the ratings in session?
- IRepositories Join in Subsonic
- Using the same class for Repository pattern and data handling in VM
- How to manage connections when using DbModelBuilder in Entity Framework?
- Multiple partial views on one main asp.net
- Can Wcf service contract also be used by others(nhibernate asp.net)
- How to use IRepository in Orchard with int key (NOT IDENTITY)
- Dependency Injection with GenericRepository error - No database provider has been configured for this DbContext NET.Core 3.1
- IRepository confusion on objects returned
- How To Write CRUD Unit Tests for Moq and Linq-to-Sql
- Repository and Immutable objects?
- POCO Entity Framework 4 With IRepository Pattern Collection Was Modified Error on Delete
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Any kind of mocking relies on members to be overridable. Your mocking-framework will create some class that either implements your interface or overrides your class. So what the framework creates is similar to the following:
or if your member would be a class-member this:
Interface-members are implictely overridable, as they literally do not provide any own logic. You can allways provide your own implementation for it. Class-members are only overridable, if they are
virtual.In your case there seems to be some difference in the test depending on if you mock the interface or the class. That probably indicates your test depends on some internals of the class - e.g. some initialization on the repo. You should either mock that also, or decouple your test from that dependency.