B
Berryl Hesh
I'm wondering if a delegate will help me solve how to reuse the unit test
fixture below (I only show one test of several here).
The parts that I want to vary in it are the IClosingWindowView &
IClosingWindowPresenter. Ideally I could call one method from a different
test fixture and run all related tests (ie,
_assertClosingBehavior(IClosingWindowView view, IClosingWindowPresenter
presenter).
The only way I can kind of do this now would be to make the test methods an
abstract class and override a property or method, but this would be pretty
fragile. I don't get delegates very well.
TIA - BH
------
[TestFixture]
public class ClosingViewPresenterTest
{
private static MockRepository _mocks;
private static IYesNoMessageAsker _mockYesNoAsker;
private static IClosingWindowView _mockView;
private IClosingWindowPresenter _presenter;
[SetUp]
public void SetUp() {
_mocks = new MockRepository();
_mockYesNoAsker = _mocks.CreateMock<IYesNoMessageAsker>();
_mockView = _mocks.DynamicMock<IClosingWindowView>();
}
[Test]
public void PresenterInjectsItselfIntoTheView() {
_mockView = _mocks.CreateMock<IClosingWindowView>();
using(_mocks.Record()) {
Expect.Call(() =>
_mockView.InitializeClosingWindowPresenter(_presenter)).IgnoreArguments();
}
using(_mocks.Playback()) {
_presenter = new ClosingWindowPresenter(_mockView, _mockYesNoAsker);
}
}
fixture below (I only show one test of several here).
The parts that I want to vary in it are the IClosingWindowView &
IClosingWindowPresenter. Ideally I could call one method from a different
test fixture and run all related tests (ie,
_assertClosingBehavior(IClosingWindowView view, IClosingWindowPresenter
presenter).
The only way I can kind of do this now would be to make the test methods an
abstract class and override a property or method, but this would be pretty
fragile. I don't get delegates very well.
TIA - BH
------
[TestFixture]
public class ClosingViewPresenterTest
{
private static MockRepository _mocks;
private static IYesNoMessageAsker _mockYesNoAsker;
private static IClosingWindowView _mockView;
private IClosingWindowPresenter _presenter;
[SetUp]
public void SetUp() {
_mocks = new MockRepository();
_mockYesNoAsker = _mocks.CreateMock<IYesNoMessageAsker>();
_mockView = _mocks.DynamicMock<IClosingWindowView>();
}
[Test]
public void PresenterInjectsItselfIntoTheView() {
_mockView = _mocks.CreateMock<IClosingWindowView>();
using(_mocks.Record()) {
Expect.Call(() =>
_mockView.InitializeClosingWindowPresenter(_presenter)).IgnoreArguments();
}
using(_mocks.Playback()) {
_presenter = new ClosingWindowPresenter(_mockView, _mockYesNoAsker);
}
}