ASP.NET MVC: ユニットテストを用意してみる

 ASP.NET MVCでユニットテストを作成してみる。訳を作ったMSのドキュメントを参考にしながら。
https://github.com/hMatoba/ASP.NET-Core-doc/blob/master/ユニットテスト.rst

 まずVisualStudioでWebアプリのソリューションを作っておく。そしてルートの下にsrcとtestというディレクトリがあることを確認する。


 testディレクトリに入り、下記のコマンドを実行する。
dotnet new -t xunittest


 するとtestディレクトリ下に二つのファイルが生成される。このうちのproject.jsonを、VisualStudioのソリューションエクスプローラから、ソリューションに既存の項目として追加する。するとVisualStudioがファイルをさらに追加してくれる。これでテストプロジェクトがソリューションに加わったことになる。


 あとはガリガリとテストを追加していくだけ。テストはテストエクスプローラから実行できる。


comment: 0

Azure: GithubからWeb Appsへデプロイ

 このブログはAzureで運用している。これまでコードのデプロイはVisualStudioを使って行っていたが、Githubでバージョン管理を行っているので、Githubにデプロイまでを一括して行ってもらうことにする。

 まずAzureの管理者コンソールを開いて、デプロイオプションを開く。さまざまなデプロイ方法が出てくる。

--------------

 Githubを選んでGithubへとび、認証を済ませてAzure→Githubのアクセス許可を与える。

--------------

 以上で設定は終わり。あとはGithubへデプロイすればデプロイまで自動で行われる。

--------------

 Azureコンソールではデプロイ履歴を追うこともできる。
comment: 0

ASP.NET MVC: ASP.NET MVCアプリを.NET Coreへ移植

 このブログのエンジンのフレームワークとしてASP.NET MVCを使っているが、.NET Framework上で動作するものを使っていた。今年の春だったか夏にLinuxなどへも移植を可能にした.NET Coreがリリースされており、もともとこれで動かすつもりだったのでブログエンジンをon .NET Frameworkからon .NET Coreへ移植した。

 
 実際の移植作業としてやったのは、
・プロジェクト立て直し
・依存ライブラリ入れ(.NET Core対応のものにする)
・ビュー、コントローラ、モデルもろもろコピペ移動
・動かなくなっている組み込みクラスの代替(一つだけだった)
という程度だった。VSで新しいプロジェクト作って、そこでNugetでライブラリ入れて、ファイルをコピペでプロジェクトに入れて、動かなくなったクラスを一つ書き換えた。30分程度で済んだ。
 動かなくなったのはセキュアなトークンの発行メソッドである。なので・・・
using System.Security.Cryptography;

を入れて、
private static string GetToken()

{
var rng = RandomNumberGenerator.Create();
var buff = new byte[25];
rng.GetBytes(buff);
return Convert.ToBase64String(buff);
}

のようなトークン生成関数を用意した。もともとあったのは下記のメソッド。
private static string GetToken()

{
var token = "";
using (var rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);

token = Convert.ToBase64String(tokenData);
}

return token;
}



 あとproject.jsonでランタイムの指定が必要かも。テストする環境やデプロイするサーバの環境をターゲットに指定する。
"runtimes": {

"win8-x86": {},
"win10-x64": {}
},


 .NET Coreへのアプリ移植は案の定、楽に進んだ。大筋問題ないようなので、あとは細部がおかしなことになっていないか確認していく。
comment: 0

雑記: ドストエフキー


東大生が小学生時代に読んだ本ランキング

 こういうタイトルの記事を見て、誰かのやってることを真似すれば自分もそれになれるって思っちゃう人っているのかなと。少なくともうわべだけ真似してる間は到底無理だろうと、自分の過去の失敗から思う。
 まあそんなことは捨てておく。ぼくは他人がどんな本を読むのかということにすごく興味があるので、東大生はどんな本を読んでいる人が多いのかというのはすごく興味をそそる。東大生に限ったことではないが本の嗜好データというのはすごくありがたいので記事に飛びついた。そうしたら記事中で、ドストエフスキーの『地下室の手記』を好きな本に挙げる人がいたと書かれていた。やばい。

 ぼくを文学に引き込んだのは、時系列的に最初がドストエフスキーだった。それから今までに何冊か読んできた。そのなかで『地下室の手記』も読んでいるが、あれを好きというのはだいぶぶっ飛んでいると思う。
 個人的にドストエフスキーの各物語の内容を読んだ範囲で大別してしまうと下記のようになる。

罪と罰、カラマーゾフの兄弟
---------------------------------
 一般と文学好む人の壁
---------------------------------
白夜、賭博者、二重人格
---------------------------------
 やばい、やばくないの壁
---------------------------------
地下室の手記、おかしな人間の夢

 『罪と罰』などは、人がまともな行いをするには他人からの愛を十分に受けているべきという著者の考えが読み取れた。『白夜』などはハッピーエンドだけが物語じゃないんだよという苦みやらしょっぱさやらぽっかりした虚しさなどがあった。終わり方はアレだけど主人公の失敗は教訓にできるよなとか思った。『地下室の手記』などはそれらから一転、毒だらけの本だったように思う。
 そんな本を好きな本に挙げる人が、表面上はどういう性格の人なのか、なにを考えているのかというのはなかなか気になる。

 そういえばカミュが『悪霊』のキャラにふれて何かを書いていたので、これも読むべきなのを書いていて思い出したのでメモ。
comment: 0