私はTDDに入っています。 nUnitとRhinoMockを使用して3.5。AssertWas SystemUnderTestのメソッドを呼び出す
私は、SystemUnderTest(SUT)のメソッドでAssertWasCalledをどのようにするかを考えようとしています。私の理解は、あなたがテスト中のシステムを模擬することができないということです。実際、現在のテストでは、SUTでAssertWasCalledを使用しているため、例外が発生します。
OrdersPresenter:
public void OnViewLoad_GetOrders()
{
var orders = GetOrders();
View.Model.Orders = orders;
}
public List<Orders> GetOrders()
{
return _ordersRepository.GetAll();
}
がOrdersPresenterTest:
_ordersPresenter = new OrdersPresenter(_view, _ordersRepository);
[Test]
public void OnViewLoad_GetOrders_Should_Call_GetOrders()
{
_view.Raise(v => v.LoadOrders += _ordersPresenter.OnViewLoad_GetOrders, view, new EventArgs);
_ordersPresenter.AssertWasCalled(d => d.GetOrders); // Getting non-mock exception here
}
どのように私はGetOrdersがSUTに呼ばれたアサートしますか?私はドキュメントでそれを理解することができませんでした。
ご協力いただきまして誠にありがとうございます。
編集:
私はSUTでGetOrdersメソッドはprivateである必要があります理解しています。私はロイOsheroveのユニットテストの技術私は戻ってプライベートメソッドをテストする方法を参照してください。 Royは、(テストするための)メソッドを公にすることは必ずしも悪いことではないと私は公開しています。
私はGetOrdersのテストを書いており、戻り値ShouldBeをアサートします。オーダーのリストつまり、GetOrdersから取得した値をスタブし、そのオブジェクトに対する自分のアクションの結果をアサートすることで、OnViewLoad_GetOrdersのテストを再構築する必要があると私は信じています。
誰かが確認して説明できますか?