Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TDD: How to test result when a method my return different result depending on the input?
- public class MyClass
- {
- public int MyMethod(int? i)
- {
- throw new NotImplementedException();
- }
- }
- [TestClass]
- public class MyClassTest
- {
- Public void Retur_Int_Greater_Than_Zero_When_Input_Is_Not_Null_And_Zero_Otherwise()
- {
- // Arrange
- var myVar = new MyClass();
- int? i = 3;
- // Act
- var result = myVar.MyMethod(i)
- //Assert
- //
- }
- }
- if(i.HasValue)
- {
- //Define the Assert statement inside a If, else constructions...
- }
- // Act
- var result = myVar.MyMethod(null)
- //Assert
- Assert.That(result, Is.EqualTo(0));
- // Act
- var result = myVar.MyMethod(0)
- //Assert
- Assert.That(result, Is.EqualTo(0));
- // Act
- int graterThatZero = 1;
- int absoluteValue = //define it here;
- var result = myVar.MyMethod(graterThatZero)
- //Assert
- Assert.That(result, Is.EqualTo(absoluteValue));
- [TestCase(null,0)]
- [TestCase(0,0)]
- [TestCase(1, 1 /* absolute value */)]
- [TestCase(-1, 1)]
- public void MyMethod_should_return_absolute_value(int? argument, int expectedResult)
- {
- // Arrange
- var myVar = new MyClass();
- // Act
- var result = myVar.MyMethod(argument)
- // Assert
- Assert.That(result, Is.EqualTo(expectedResult));
- }
- [TestCase(null,0)]
- [TestCase(0,0)]
- [TestCase(10,10)]
- [TestCase(-10,10)]
- public void TestItWorksForInput(int? input, int expectedOutput)
- {
- var myVar = new MyClass();
- var output = myVar.MyMethod(argument);
- Assert.That(output, Is.EqualTo(expectedOutput));
- }
Add Comment
Please, Sign In to add comment