テストデータ作成の工数見積もりをミスった・・・・結構大変なのね。(´д`ι)
今日はひたすらコーディング!!
こんばんは。
キテレツです。
今日はひたすらコーディングと小さなソフト作っての動作テスト。
動作テストは、C#からメールを送信するコードの動作確認。
今日は一日、DBアクセス部分とメール送信部分制作で終了。
メールは非同期で送信したい。
ものすごく久しぶりにメモ的なコードを。
Windowsフォームにボタンを2つ配置。
片方は送信で、もう片方はキャンセル
以下、メモコード抜粋。
//SmtpClientオブジェクト System.Net.Mail.SmtpClient sc = null; //Button1のClickイベントハンドラ private void Button1_Click(object sender, EventArgs e) { //MailMessageの作成 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage( "sender@xxx.xxx", "recipient@xxx.xxx", "題名", "本文"); //SmtpClientの作成 if (sc == null) { sc = new System.Net.Mail.SmtpClient(); //イベントハンドラの追加 sc.SendCompleted += new System.Net.Mail.SendCompletedEventHandler(sc_SendCompleted); } //SMTPサーバーなどを設定する sc.Host = "localhost"; sc.Port = 25; sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //メールを送信する //MailMessageをSendCompletedイベントハンドラで取得できるようにする sc.SendAsync(msg, msg); } //Button2のClickイベントハンドラ private void Button2_Click(object sender, EventArgs e) { //メールの送信をキャンセルする if (sc != null) sc.SendAsyncCancel(); } //メール送信が完了したとき private void sc_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { //SendAsyncで指定されたMailMessageを取得する using (System.Net.Mail.MailMessage msg = (System.Net.Mail.MailMessage)e.UserState) { if (e.Cancelled) { Console.WriteLine("[{0}]の送信はキャンセルされました。", msg.Subject); } else if (e.Error != null) { Console.WriteLine("[{0}]の送信でエラーが発生しました。", msg.Subject); Console.WriteLine(e.Error.Message); } else { Console.WriteLine("[{0}]の送信が完了しました。", msg.Subject); } } }
ざっくりとこんな感じでコーディング。
カンマで区切ってあげれば、送信先を複数にすることも可能。
マイクロソフトのコードをそのまま持ってきて動作させてみたら動きました。
ありがたいことです。
タイムアウトの処理は???ってのに気がついていますが、、、後ほど導入しよう。
DBアクセスは・・・・
プログラミング以外のところで時間を使ってしまいました。
何かと申しますと・・・
(´д`ι) テストデータ作るのがめんどい!!
んです。
リレーションシップで関連付けて設計されているテーブルデータを、辻褄が合うように突っ込まなければならないんですが、たった数件のテストデータを作るだけで2時間くらいかかってしまいました。
入力しなければならないカラムの数が沢山。。。まぁ、業務ソフトウェアならこんなの当たり前なのかもしれませんが。
明日は機能テストまで
やりたいですね。
単体で動作しているやつを組み合わせて、必要な機能を実現します。
想定される今後の課題
おそらく、、、テストしなければならないデータのパターンを網羅できていません。
運用側から、データのパターンについて取材させてもらいましたが、きっとまだ想定外のデータとかあるはずです。。。