7
私はMoqを初めて使ったことがあり、これまでPro asp.netフレームワークで概説されている例に過ぎませんでした。この本では、シンプルさの理由から、IDで顧客を取得するなど、いくつかのクラッシュがコントローラに配置されています。私はそのタイプの機能をリポジトリに配置し、単に "customerRepository.GetCustomerByID(id);"のようにコントローラ内で呼び出すことに決めました。このようなテストをする最良の方法は何ですか?何らかの理由でnull Customerを返す次の単体テストを作成しました。Moqを使ったユニットテストリポジス
List<Customer> customer = new List<Customer>();
customer.Add(new Customer { CustomerId = 1, FirstName = "test", LastName = "wods", Sex = true });
mockRepos = new Moq.Mock<ICustomerRepository>();
mockRepos.Setup(x => x.Customers).Returns(customer.AsQueryable());
CustomersController controller = new CustomersController(mockRepos.Object);
//Act
ViewResult results = controller.Edit(1);
var custRendered = (Customer)results.ViewData.Model;
Assert.AreEqual(2, custRendered.CustomerId);
Assert.AreEqual("test", custRendered.FirstName);
そして私は、私は非常に愚かなことだけど、任意のヘルプはユーバーいただければ幸い想像コントローラ
public ViewResult Edit(int id)
{
Customer customer = customerRepository.GetCustomerByID(id);
return View(customer); //this just returns null??
}
。
ありがとうございます。 – hoakey