I am getting the following error:
TestCase 'MakeMyPledge.BusinessObjects.UnitTest.CreateMembershipProvider.CreateUserButDatabaseFails'
failed: TypeMock.TypeMockException :
*** Cannot use CallOriginal in this sequence, there must be a mocked statement first
Perhaps you are trying to mock a method from mscorlib
at TypeMock.RecordExpectations.b(String A_0)
at TypeMock.RecordExpectations.a(String A_0)
at TypeMock.RecordExpectations.CallOriginal()
C:Documents and SettingsdougcMy DocumentsVisual Studio 2005ProjectsMakeMyPledgeMakeMyPledge.BusinessObjectsUnitTestCreateMembershipProvider.cs(233,0): at MakeMyPledge.BusinessObjects.UnitTest.CreateMembershipProvider.CreateUserButDatabaseFails()
But ONLY under these circumstances:
1) I am running using TestDriven.NET (latest version) and VS2005 SP1
2) I am running unit tests WITH coverage (NCover included in TD)
3) I am running all unit tests in the fixture (there are 23)
If I do this:
4) Run ONLY this unit test WITH coverage...it works
5) Run ALL unit tests WITHOUT coverage...it works
This makes be think I have some side effects. How can I be sure that any mocks used in other unit tests are not affecting the current test?
I have tried adding this to the TestFixture:
[TearDown]
public void AfterEachTest()
{
MockManager.Verify();
MockManager.ClearAll();
}
...but it seems to have no effect.
Here is the test:
[Test]
public void CreateUserButDatabaseFails()
{
MakeMyPledgeMembershipProvider provider = new MakeMyPledgeMembershipProvider();
provider.Initialize(null, null);
Exception ex = new Exception();
using (RecordExpectations recorder = RecorderManager.StartRecording())
{
BusinessTransaction tran = new BusinessTransaction();
recorder.CallOriginal();
DevExpress.Xpo.UnitOfWork x = tran.UnitOfWork;
recorder.CallOriginal();
tran.CommitChanges();
recorder.Throw(ex);
}
MembershipCreateStatus status;
MembershipUser user = provider.CreateUser("doug", "Hair1234", "dougc@test.com",
"Mothers maiden name", "Franklin", true, Guid.NewGuid(), out status);
Expect(user == null);
Expect(status == MembershipCreateStatus.ProviderError);
}
Any ideas would be greatly appreciated.