קען נישט רייצנ אַ מעטאָד רופן אין אַ ASP.NET MVC קאָנטראָללער ניצן מאָק

איך האָב די פאלגענדע קאָד אין אַ" UserController "אין מיין ASP.NET MVC אַפּלאַקיישאַן:

public class UserController : Controller
{
    public ActionResult Index()
    {
        return RedirectToAction("List");
    }

    public ActionResult List()
    {
        IUserRepository repo = new UserRepository();
        IQueryable<Business.Entities.User> users = repo.GetAll();
        return View("List", users);
    }
}

ניצן מאָק, איך וואָלט ווי צו רייצן די דאַטאַבייס רופן" repo.GetAll () ". דאָ איז וואָס איך האָבן פֿאַר מיין פּראָבע:

[Test]
public void List()
{
    Mock<IUserRepository> mockRepo = new Mock<IUserRepository>();
    mockRepo.Setup(ur => ur.GetAll()).Returns(MockedGetAll());
    var v = mockRepo.Object.GetAll();

    var controller = new UserController();
    var result = controller.List() as ViewResult;
    var model = result.ViewData.Model as IQueryable<User>;

    Assert.AreEqual("List", result.ViewName);
    Assert.IsNotNull(model);
    Assert.Greater(model.Count(), 0);
}

איך אויך האָבן אַ פונקציע וואָס וואָלט צוריקקומען עטלעכע סטאַטיק דאַטן צו באַפרידיקן די פּרובירן:

private IQueryable<User> MockedGetAll()
{
    List<User> users = new List<User>();
    users.Add(new User(1, "mark.paterson", "mark.paterson@yahoo.com", "Mark", "Paterson", false, true));
    users.Add(new User(2, "nikki.paterson", "nikki.paterson@yahoo.com", "Nikki", "Paterson", false, true));
    return users.AsQueryable();
}

די פּרובירן ברייקס אין" Assert.Greater ". איך באַקומען אַ 0 רעקאָרדס אַנשטאָט פון 2. ווען איך דיבאַגד די קאָד, די קאָד אַקשלי קערט דער רעזולטאַט פון די דאַטאַבייס רופן, וואָס איז געמיינט צו זיין 0 רעקאָרדס, אַנשטאָט פון די מאַקט דאַטן.

5
задан Skadoosh 7 July 2011 в 19:55
поделиться