2012-02-12 1 views
0

셀렌을 사용하는 동안 몇 가지 어려움을 겪고 있습니다 (사용자 관리자). 시나리오/단계가 얼마나 집중되어야하는지 생각하게 만듭니다. 예를 들어 사용자로 게시물을 추가하는 테스트입니다.오이 - 얼마나 많은 통합이 필요합니다.

사용자가 (기존 사용자가 제공 한) 단계에서 등록 할 페이지를 클릭 한 다음 게시물을 추가해야합니까? 아니면 모델을 통해 사용자를 만들고 포스트 추가를 클릭해야합니까?

답변

0

하는 문서를 게시하는 사용자에 관심이있는 사람, 그리고 시나리오에 대한 그들-이야기를 찾기)

이 수치는 단지 짧은 설명 글에 대한 링크를 붙여 넣기하지 마십시오. 그들이 가지고있는 포커스는 아마 당신이 사용해야 할 초점 일 것입니다.

예를 들어, 그들은 아마도 말할 것이다,

Given there's a user who likes horses 
And they're already logged in 
When they add a post 
Then it should be visible to other people who like horses 

언어는 매우 비공식입니다. 나는 가능한 한 그들의 말을 지키라고 권합니다. 비즈니스 사용자는 게시물을 클릭하고 사용자 모델을 만드는 등의 작업을하지 않을 것입니다. 비즈니스 시나리오를 수행하는 데 필요한 모든 작업을 코드 아래에 만들 수 있습니다.

"감안할 때"무엇이든지 쉽게 작동하도록하십시오. 어쩌면 데이터를 해킹하거나 사용자 모델을 깨뜨릴 수 있습니다. 어쩌면 그것은 페이지를 클릭하고 있습니다. 잘못했을 경우 시나리오를 변경하지 않고 나중에 변경할 수 있으므로 쉽게 시도해도 좋습니다. UI 자동화는 느리므로 궁극적으로 데이터 나 모델을 사용하기로 결정할 수 있습니다.하지만 나중에이를 수행하면 데이터/모델이 어차피 어떻게 생겼는지 더 잘 알 수 있습니다.

"언제"는 관심있는 행동을 유발하는 이벤트입니다.이 경우 "게시물을 추가 할 때"입니다. 할 수있는 가장 높은 수준에서 항상이를 수행해야합니다. UI를 자동화하고 싶거나 다른 컨트롤러를 사용하기를 원하는 사람들이 있습니다. 그러나 이것은 기본적으로 시나리오의 핵심이므로 여기에서 데이터를 해킹해서는 안됩니다.

Here's an article I wrote 약 BDD를 사용하면 대화가 유용하다고 생각됩니다. 이 중 하나 ("Step Away from the Tools" 또는 this rant I wrote on StackOverflow)를 좋아할 수도 있습니다.

BDD의 가장 중요한 점은 사람과 이야기하는 것입니다.하지만입니다. 그것을 시도하고 도구가 당신을 방해하지 못하게하십시오!

+0

제 질문은 시나리오보다 단계 정의에 관한 것입니다. 시나리오가 가능한 한 인간이되어야한다는 것을 이해합니다.질문은 시나리오가 말하는 것을 정확하게 테스트하는 데 초점을 맞 춥니 다. – Mailo

+0

대화에서 실제로 시작하면 단계 정의에 적절한 수준의 집중이 적용됩니다. 나는 당신이 아직 게시하지 않은 것을 게시 한 것으로부터 말할 수 있습니다. P 대화를하지 않으면 시나리오가 빠르게 지루하고 유지 보수가 불가능 해집니다. 정직한! 나는 "when"대 "given"에 대해 약간의 내용을 추가하기 위해 약간 편집 중이다. – Lunivore

1

저는 오이 북에서 권장하는 방법을 따르는 경향이 있습니다. 일반적으로 직접 모델 액세스를 사용하여 테스트의 초점이 아닌 설정을 수행 할 것을 제안합니다.

예 : '쇼핑 바구니에 항목 추가'테스트를 위해 모델을 직접 조작하여 추가 할 로그인 사용자 및 제품을 만든 다음 브라우저 통합을 사용하여 작업을 테스트했습니다,이 경우 ' 바구니에 추가 '버튼을 클릭하고 바구니 내용을 확인하십시오.

실제로 로그인 기능을 테스트하는 경우 Capybara/Webrat 등의 로그인 페이지를 클릭하기 시작합니다.