단위 테스트 컨트롤러는 어떻게해야합니까? 우선, 데이터베이스 결과를 모의합니다. 하지만 그 다음엔? 컨트롤러에서 코드를 다시 작성하고 mock에 대한 모든 쿼리를 테스트해야합니까? 또는 컨트롤러 클래스를 호출하고 전체 결과를 테스트 할 수 있습니까?단위 테스트 컨트롤러 사례
class User {
public function foo()
{
// query 1
// query 2
return $someresults;
}
}
나는 그것이 그렇게 테스트해야합니다 :
class TestUser {
public testFoo()
{
// query1
// assertions
// query2
// assertions
// results asserions
}
}
또는 오히려 같은 :
class TestUser {
public function testFoo()
{
$user = new User($mockEntityManager);
// assertions on $user object
}
}
이 작업을 수행하는 적절한 방법은 무엇입니까 나는이 클래스를 가지고, 예를 들어, 의미? 모든 쿼리를 테스트하면 코드가 두 배로 늘어나고 저장소 클래스의 외부 쿼리에 문제가 생깁니다 (모의해도 될지 모르겠다). 일반적인 결과를 테스트하는 것은 괜찮지 만 컨트롤러의 메서드는 뷰 템플릿을 반환하므로 데이터베이스 응답을 테스트하는 방법을 잘 모르겠습니다.
가능한 답변이 너무 많거나 좋은 대답은이 형식에 비해 너무 길어집니다. 응답 집합의 범위를 좁히거나 몇 단락에서 대답 할 수있는 문제를 찾아내는 세부 정보를 추가하십시오. – Ziumin