איך האָב די פאלגענדע קאָד אין אַ" 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 רעקאָרדס, אַנשטאָט פון די מאַקט דאַטן.