2016-01-01から1年間の記事一覧

PrivateObjectExtensions

C#

github.com 作った。 ユニットテスト書いている時、実際の型と見えている型が違うとか同じとかを気にせずにprivateメンバにアクセスしたいことがよくある。Moqでモック作った時とか、基底クラスの型でオブジェクトを扱っている時とか。staticかどうかも気に…

MEFでImportしているメンバをモックに差し替える

C#

github.com C#でMEF使っているコードで、ユニットテストでMoqを使ってモックに差し替える話。 [Export] public class Test1 { [Import] private Test2 m_test2; public Test1() { } } [Export] public class Test2 { [Import] private Test1 m_test1; public…

Windows10でスタートメニューが表示されなくなったらまず完全シャットダウンを試す

Windows7からWindows10にアップデートしてから数日経ち、急にスタートメニューが表示されなくなりました。ググってみると同様の症状は結構発生しているようで修復やらの方法が色々出てきますが、その前にまず完全シャットダウンを試しましょう。私はこれだけ…

DVDを入れるとドライブが表示されなくなる

PC

USB接続の外付けDVDドライブを使っていますが、USBを接続した時点ではエクスプローラ上にドライブが表示されるのにDVDを入れると消える現象に悩まされました。 原因はPC前面のUSBポートに接続していたことでした。前面のUSBポートはマザーボードからケーブル…

C#でのイテレータパターン

1. Iteratorパターン 1 | TECHSCORE(テックスコア) これをC#で書く。イテレータはC#だとIEnumerator<T>なので、イテレータパターンはIEnumerable<T>を実装するパターンということになる。 public class MyStudentList : StudentList, IEnumerable<Student> { public MyStude</student></t></t>…

List<T>の列挙方法による速度比較

C#

追記:以下ではStopwatchで実行時間を計測しておりあまり適切ではありませんが、BenchmarkDotNetで再計測したところおおむね同じ結果となり、傾向としては間違っていないと考え、書き直しはしていません。 List<T>に対してforeachのようなことをするには、いく</t>…

テスト駆動開発をどう使うか

テスト駆動開発(TDD)についてのお勉強と考察。 「本実装の前にユニットテストを書く」というルールを自分に課して開発してみたことは何度かあるが、ユニットテストをどう書くかということも関係してそう単純なものではないことは肌で感じており、今回TDDの…