2
ビジネスロジックが変更されたときに失敗した場合、単体テストは脆弱と見なされますか?
以下のコードをご覧ください。女性の性別を持つ人がoffer1に適格であるかどうかをテストします。 [Fact] public void ReturnsFalseWhenGivenAPersonWithAGenderOfFemale() { var personId = Guid.NewGuid(); var gender = "F"; var person = new Person(personId, gender); var id = Guid.NewGuid(); var offer1 = new Offer1(id,"Offer1"); Assert.False(offer1.IsEligible(person)); } この単体テストは成功します。ただし、今後「Offer1」が女性に提供されると、失敗します。 言うことは受け入れられますか?オファー1を取り巻くビジネスロジックが変更された場合、ユニットテストは変更されなければなりません。データベースによっては、ビジネスロジックが次のように変更される場合があります(一部のオファーでは)。 update Offers set Gender='M' where offer=1; そして、このようなドメインモデルの場合には: if (Gender=Gender.Male) { //do something } また、背後のドメインロジックが定期的に変更を提供する場合と、そうでない場合もあることに注意してください。