.net での単体テスト/mvc は初めてです。私は本Pro ASP.net MVC 4、第4版に従っています。本の中で、彼らは偽の店を作ります。例の 1 つでは、viewbag を使用してデータを部分ビューに渡します。それらには関連する単体テストがありますが、ビューバッグコンテナーではなくビューモデルを介してデータを渡すように例を書き直しましたが、単体テストを書き直して渡す方法がわかりません。誰か手伝ってくれませんか?私はこれを1時間理解しようとしているだけで、それは無駄な努力です。以下はWORKINGテストです。
// Arrange
// - create the mock repository
Mock<IProductRepository> mock = new Mock<IProductRepository>();
mock.Setup(m => m.Products).Returns(new Product[] {
new Product {ProductID = 1, Name = "P1", Category = "Apples"},
new Product {ProductID = 4, Name = "P2", Category = "Oranges"},
}.AsQueryable());
// Arrange - create the controller
NavController target = new NavController(mock.Object);
// Arrange - define the category to selected
string categoryToSelect = "Apples";
// Action
string result = target.Menu(categoryToSelect).ViewBag.SelectedCategory;
// Assert
Assert.AreEqual(categoryToSelect,result);
ビューモデルを介して(正常に)データを渡したので...
public class CategoryInfoViewModel:IEnumerable<string>
{
public IEnumerable<string> Categories { get; set; }
public string SelectedCategory { get; set; }
public IEnumerator<string> GetEnumerator()
{
return Categories.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
テストを変更して機能させるにはどうすればよいですか? どうもありがとう!