Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 647001
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T21:40:29+00:00 2026-05-13T21:40:29+00:00

i have just started using Moq ver (3.1) and i have read blogs and

  • 0

i have just started using Moq ver (3.1) and i have read blogs and what not…. anyway… i guess until you makes your hand dirty you will not learn 🙂

okay here is what i’m testing…

  var newProduct = new Mock<IPartialPerson>();   
  newProduct.SetupGet(p => p.FirstName).Returns("FirstName");   
  newProduct.SetupGet(p => p.MiddleName).Returns("MiddleName");   
  newProduct.SetupGet(p => p.LastName).Returns("LastName");   
  newProduct.SetupGet(p => p.EmailAddress).Returns("EmailAddress@hotmail.com");   
  newProduct.SetupGet(p => p.UserID).Returns("UserID");   

  //mock Escort repository   
  var mockEscortRepository = new Mock<IEscortRepository>();     
  mockEscortRepository.Setup(p => p.LoadAllEscorts())   
      .Returns(newProduct.Object); //error  

Error 1 The best overloaded method
match for
‘Moq.Language.IReturns>.Returns(System.Collections.Generic.List)’
has some invalid arguments


Error 2 Argument ‘1’: cannot convert
from
‘App.Model.Interface.IPartialPerson’
to
‘System.Collections.Generic.List’


public interface IPartialPerson   
    {   
        string FirstName { get; }   
        string MiddleName { get; }   
        string LastName { get; }   
        string EmailAddress { get; }   
        string FullName { get; }   
        string UserID { get; }   

    }  

public interface IEscortRepository   
   {   
       List<PartialPerson> LoadAllEscorts();   
       List<PartialPerson> SelectedEscorts(List<PartialPerson> selectedEscorts);     
   }  

i have two methods that i want to test “LoadAllaEscorts” and “SelectedEscorts”

how would i do a test for both methods?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T21:40:30+00:00Added an answer on May 13, 2026 at 9:40 pm

    i have two methods that i want to test
    “LoadAllaEscorts” and
    “SelectedEscorts”

    Those are methods on an interface. You don’t write tests against an interface, or against mock objects. You write tests against concrete classes.

    Somewhere you have an EscortRepository that implements IEscortRepository. I’m assuming that hits the database. Write integration tests against that.

    Elsewhere in your code you probably have a class (call it “Foo”) that has an IEscortRepository dependency injected into it (such as via a constructor parameter). When you want to write tests against the Foo class, you would use Moq to create a mock IEscortRepository returning fixed test data and pass that mock object into your Foo instance.

    Another issue is that your IEscortRepository methods are returning (or taking as a parameter) List<PartialPerson>. Those should be IList<IPartialPerson> (or IEnumerable<T>, ICollection<T>, or ReadOnlyCollection<T>). The most important part is that the collection items should be an interface type (IPartialPerson).

    +1 for magnifico, who had the code right:

    using System;
    using System.Collections.Generic;
    using Moq;
    
    namespace ConsoleApplication1
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                var newProduct = new Mock<IPartialPerson>();
    
                newProduct.SetupGet(p => p.FirstName).Returns("FirstName");
                newProduct.SetupGet(p => p.MiddleName).Returns("MiddleName");
                newProduct.SetupGet(p => p.LastName).Returns("LastName");
                newProduct.SetupGet(p => p.EmailAddress).Returns("EmailAddress@hotmail.com");
                newProduct.SetupGet(p => p.UserID).Returns("UserID");
    
                var mockEscortRepository = new Mock<IEscortRepository>();
    
                mockEscortRepository
                    .Setup(p => p.LoadAllEscorts())
                    .Returns(new List<IPartialPerson> {newProduct.Object});
    
                IEscortRepository repository = mockEscortRepository.Object;
    
                IList<IPartialPerson> escorts = repository.LoadAllEscorts();
    
                foreach (IPartialPerson person in escorts)
                {
                    Console.WriteLine(person.FirstName + " " + person.LastName);
                }
    
                Console.ReadLine();
    
                // Outputs "FirstName LastName"
            }
        }
    
        public interface IPartialPerson
        {
            string FirstName { get; }
            string MiddleName { get; }
            string LastName { get; }
            string EmailAddress { get; }
            string FullName { get; }
            string UserID { get; }
        }
    
        public interface IEscortRepository
        {
            IList<IPartialPerson> LoadAllEscorts();
            IList<IPartialPerson> SelectedEscorts(IList<IPartialPerson> selectedEscorts);
        }
    }
    

    (The above example is not a unit test; it just shows that Moq works.)

    Note that you don’t have to use SetupGet for properties; Setup works as well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.