I have a unit test called TestMakeAValidCall()
. It tests my phone app making a valid call.
I am about to write another test called TestShowCallMessage()
that needs to have a valid call made for the test. Is it bad form to just call TestMakeAValidCall()
in that test?
For reference this is my TestMakeAValidCall()
test.
[TestMethod] public void TestMakeAValidCall() { //Arrange phone.InCall = false; phone.CurrentNumber = ""; // Stub the call to the database data.Expect(x => x.GetWhiteListData()). Return(FillTestObjects.GetSingleEntryWhiteList()); // Get some bogus data string phoneNumber = FillTestObjects.GetSingleEntryWhiteList(). First().PhoneNumber; // Stub th call to MakeCall() so that it looks as if a call was made. phone.Expect(x => x.MakeCall(phoneNumber)). WhenCalled(invocation => { phone.CurrentNumber = phoneNumber; phone.InCall = true; }); //Act // Select the phone number deviceControlForm.SelectedNumber = phoneNumber; // Press the call button to make a call. deviceMediator.CallButtonPressed(); //Assert Assert.IsTrue(phone.InCall); Assert.IsTrue(phone.CurrentNumber == phoneNumber); }
Tests should never depend on each other. If your tests have to be run in a specific order, then you need to change your tests. Instead, you should make proper use of the Setup and TearDown features of your unit-testing framework to ensure each test is ready to run individually.
Limitations of Unit Testing Unit testing cannot detect integration or interfacing issues between two modules. It cannot catch complex errors in the system ranging from multiple modules. It cannot test non-functional attributes like usability, scalability, the overall performance of the system, etc.
Unit testing considerations What errors are commonly found during Unit Testing? (1) Misunderstood or incorrect arithmetic precedence, (2) Mixed mode operations, (3) Incorrect initialization, (4) Precision inaccuracy, (5) Incorrect symbolic representation of an expression.
Refactor the setup to another method and call that method from both tests. Tests should not call other tests.
IMHO, you should do one of the following:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With