我有几个问题,首先--方法的命名是否也应该遵循BDD的方法,什么时候,然后在方法内部使用?
例如,Given_Preconditions_When_StateUnderTest_Then_ExpectedBehavior或者它会过多地重复自己,最好使用methodNameUnderTest_givenCondition_expectedBehavior之类的命名方式?
第二:我需要在测试标记中写注释吗?示例:
@Test
void findById() {
// GIVEN
Visit visit = new Visit();
given(visitRepository.findById(1L)).willReturn(Optional.of(visit));
// WHEN
Visit foundVisit = service.findById(1L);
// THEN
assertThat(foundVisit).isNotNull();
then(visitRepository).should().findById(anyLong());
}发布于 2021-08-18 10:36:47
我个人喜欢方法名类似于在bdd方法中测试的方法。所以我不认为有要求,但这取决于你的喜好。在命名测试时,我总是使用should_when原则。shouldFindVisit_whenIdExists
简短而简单,使用given_when_then这个名字可能很快就会变大,尽管我不认为它在测试中是个大问题!
关于你的第二个问题,我认为这又取决于你的喜好,但我认为是的,它总是有助于了解我目前在我的测试。我可以更容易地构造我的测试,以防我给它添加了什么。
void shouldFindVisit_whenIdExists() {
// given
Visit should = ...;
// when
actual = service.findById(...);
// then
assertThat(actual, is(should));
}我还总是在我的预期变量前加上一个应该,以便将它们标记为它最终应该期望的。以及在when部分中服务调用的实际结果是实际的。
最后的核查是非常清楚和简单的。
https://stackoverflow.com/questions/68830609
复制相似问题