ケビンが言及したダンノースの記事は素晴らしいです。
実際に書かれているか、少なくともクライアント/ユーザーから収集されているはずの「ユーザーストーリー」があることに注意してください。これらは、「もっと、私がしたい、そういうもの」のようなものです。
次に、ユーザのストーリーがどのようにいつ満足されると言われるかを識別する承認基準があります。それは、あなたがあなたの投稿に書いたようなものです:「xのときはyです。」
プロジェクト管理システムでは「システムストーリー」と呼ばれ、テストではユーザーが気づいていないかもしれないが、クラス間のやり取りを記述する「仕様」が重複しています。 システムストーリー:「LoginHandlerにログインとパスワードが与えられると、LoginValidatorでデータを検証する必要があります。 仕様:
[TestFixture]
public class When_the_login_handler_is_given_a_login_and_password
{
constant string login = "jdoe";
constant string password = "password";
static LoginValidator loginValidator;
context c =() => loginValidator = an<ILoginValidator>;
because b =() => sut.Validate(login, password);
it should_validate_the_data_with_a_LoginValidator =
() => loginValidator.was_told_to(x => x.DoValidation(login, password));
}
ネヴァーマインドテスト構文は、あなたは、仕様テキスト自体がテストクラス名やメソッド名に具現化されていることがわかります。さらに、テスト/スペックは実際にクラスの動作をテストしています。このようなテストが単純なユーザーストーリーに合格すると、合格基準が満たされます。
出典
2009-06-01 06:43:20
Jay