[ViewData]
should be used when data is passed from PageModel to Page.
[BindProperty]
should be used when data is passed from PageModel to Page and vice versa via POST/GET. This is two-way binding.
RazorPage
https://www.learnrazorpages.com/
非同期クエリ
await Messages
.OrderBy(message => message.Text)
.AsNoTracking()
.ToListAsync();
https://docs.microsoft.com/ja-jp/ef/core/querying/async
xunitでの単体テスト
https://docs.microsoft.com/ja-jp/dotnet/core/testing/unit-testing-with-dotnet-test
Razorプロジェクトを作成
RazorTestプロジェクトを作成
新しいプロジェクト>.Net Core > xUnitテストプロジェクト
RazorTestの参照の追加で、Razorプロジェクトを参照する。
【参考】
https://qiita.com/takutoy/items/84fa6498f0726418825d
Razorページでの単体テスト
https://docs.microsoft.com/ja-jp/aspnet/core/test/razor-pages-tests?view=aspnetcore-2.1
・テスト フレームワークはxUnit
・オブジェクトのモック作成フレームワークがMoq
xUnitインストール
NuGetパッケージ管理から下記インストール
xunit
xunit.runer.visualstudio
Razorページ
単体テストの基本
https://docs.microsoft.com/ja-jp/visualstudio/test/unit-test-your-code?view=vs-2017
テストについて
https://docs.microsoft.com/ja-jp/dotnet/standard/modern-web-apps-azure-architecture/test-asp-net-core-mvc-apps
単体テストについて(抜粋)
・アクションの機能性の多くは、アクション メソッド自体の外にあるので、ルーティングが正しく機能するかどうかのテストやグローバル エラーの処理は、単体テストで効果的に行うことができない。
・同様に、モデル検証、認証、許可のフィルターなど、いかなるフィルターも単体テストできません
・単体テストする目的で、コードを改良する必要があります
・一般的には、インフラストラクチャに対して直接コード化せず、抽象化を特定し、依存関係挿入を利用し、テストするコードの抽象化にアクセスします
単体テスト WebAPI
https://docs.microsoft.com/ja-jp/aspnet/web-api/overview/testing-and-debugging/unit-testing-with-aspnet-web-api
https://docs.microsoft.com/ja-jp/aspnet/web-api/overview/testing-and-debugging/mocking-entity-framework-when-unit-testing-aspnet-web-api-2
TTD
razorページの単体テスト
https://docs.microsoft.com/ja-jp/aspnet/core/test/razor-pages-tests?view=aspnetcore-2.1