5
私は単体テストの初心者です。ユニットの問題怠惰な負荷特性をテストし、それに簡単な解決策がある場合は疑問につまずい:私は(if文)プロパティのロジックをテストする必要があり遅延ロードの単体テストテストの簡単な方法
private SubscriptionType _subscriptionType;
public SubscriptionType SubscriptionType
{
get
{
if (_subscriptionType == null ||_subscriptionType.SubscriptionTypeId != this.SubscriptionTypeId)
{
if (this.SubscriptionTypeId !=0)
_subscriptionType = SubscriptionType.Load(this.SubscriptionTypeId);
}
return _subscriptionType;
}
}
はなく、実際のSubscriptionTypeロード機能 - 思えますここで最も明白なアプローチのように、おそらくSubscriptionType.Loadを抽象化し、ある種のIoCを使って模擬メソッドに置き換えることになります。 このようなリファクタリングを避けるための簡単な方法があるかどうかは不思議です。正確な単体テストケースを書くのはやや難しいようです。 あなたの考えは? ありがとう!
.NET 4でLazyクラスを見てください。これを使用すると、コードが少なくて済みます。おそらく単体テストの価値はありません。 –
何を試そうとしていますか?プロパティーに正しいデータが含まれているか、またはレイジーにロードされているという事実? – zerkms
条件が満たされたときにLoadを呼び出すロジックをテストし、そうでない場合はLoadをバイパスします。 – DSY