"woman": case "girl": case "man": case "boy": return true; default: return false; } } [TestCase("woman")] [TestCase("girl")] [TestCase("man")] [TestCase("boy")] public void TerminatorShould_Determine_ToInvestigate Further (string subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestigateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); }
"woman": case "girl": case "man": case "boy": return true; default: return false; } } [TestCase("woman")] [TestCase("girl")] [TestCase("man")] [TestCase("boy")] public void TerminatorShould_Determine_ToInvestigate Further (string subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestigateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); }
"woman": case "girl": case "man": case "boy": return true; default: return false; } } [Test] public void TerminatorShould_DetermineNot_ToInvestigateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); } TerminatorShould_DetermineNot_ToInvestigateFurther("T1000"): Success
"woman": case "girl": case "man": case "boy": case "T1000": return true; default: return false; } } [Test] public void TerminatorShould_DetermineNot_ToInvestigateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); } TerminatorShould_DetermineNot_ToInvestigateFurther("T1000"): Failed: Expected result to be False, but found True
subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestig ateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); }
subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestig ateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); } [TestCase("woman", true)] [TestCase("girl", false)] [TestCase("man", false)] [TestCase("boy",true)] [TestCase("T1000",true)] public void TerminatorShould_Determine_ToInvestigate Further (string subjectName, bool outcome) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Equals(outcome); }
subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestig ateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); } [TestCase("woman", true)] [TestCase("girl", false)] [TestCase("man", false)] [TestCase("boy",true)] [TestCase("T1000",true)] public void TerminatorShould_Determine_ToInvestigate Further (string subjectName, bool outcome) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Equals(outcome); }
subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestig ateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); } [TestCase("woman", true)] [TestCase("girl", false)] [TestCase("man", false)] [TestCase("boy",true)] [TestCase("T1000",true)] public void TerminatorShould_Determine_ToInvestigate Further (string subjectName, bool outcome) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Equals(outcome); }
subjectName) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Should().BeTrue(); } [Test] public void TerminatorShould_DetermineNot_ToInvestig ateFurther() { var subject = new Subject {SubjectName = "T1000"}; var result = _sut.InvestigateFurther(subject); result.Should().BeFalse(); } [TestCase("woman", true)] [TestCase("girl", false)] [TestCase("man", false)] [TestCase("boy",true)] [TestCase("T1000",true)] public void TerminatorShould_Determine_ToInvestigate Further (string subjectName, bool outcome) { var subject = new Subject {SubjectName = subject Name}; var result = _sut.InvestigateFurther(subject); result.Equals(outcome); }
} } public class Subject : ISubject { public string SubjectName { get; set; } } public bool InvestigateFurther(ISubject subject) { switch (subject.SubjectName.ToLower()) { case "woman": case "girl": case "man": case "boy": case "T1000": return true; default: return false; } }
"woman": case "girl": case "man": case "boy": case "T1000": return true; default: return false; } } public class IsWomanRule : ISubjectRule { public bool OfInterest() { return true; } public bool IsMatch(Subject subject) { return subject.SubjectName.ToLower().Contains("woman"); } }
"woman": case "girl": case "man": case "boy": case "T1000": return true; default: return false; } } public class IsDogRule : ISubjectRule { public bool OfInterest() { return false; } public bool IsMatch(Subject subject) { return subject.SubjectName.ToLower().Contains("dog"); } } public class IsWomanRule : ISubjectRule { public bool OfInterest() { return true; } public bool IsMatch(Subject subject) { return subject.SubjectName.ToLower().Contains("woman"); } }
a significant culture change •Initial drop in productivity can be disconcerting •Productivity will go up and reworks reduced •Increased understanding of requirements and their acceptance criteria
= new Subject{SubjectName = "woman"}; var result = _sut.InfestigateFurther(subject); result.Should().BeTrue(); } public bool _sut.InvestigateFurther(ISubject subject) { return true; }
= new Subject{SubjectName = "woman"}; var result = _sut.InfestigateFurther(subject); result.Should().BeTrue(); } public bool _sut.InvestigateFurther(ISubject subject) { return true; } Write the least amount of code to get your test to pass. Return true!