셀 테스트 ASP에서 LINQ 시뮬레이션을 쉽게 수행할 수 있습니다.NET 핵심 어플리케이션
10775 단어 webdevcsharpdotnetproductivity
시뮬레이션은 unit testing 응용 프로그램에서 언급된 과정이다.여기서, 우리는 코드 단원이 예상대로 실행되는지 테스트하기 위해 외부 의존 (시뮬레이션) 을 위조 의존으로 대체합니다.
마찬가지로 LINQ 시뮬레이션에서는 LINQ 질의에 사용된 엔티티 데이터를 시뮬레이션할 수 있습니다.실시간 응용 프로그램에서 데이터베이스에서 실제 데이터에 접근하는 방법을 위해 단원 테스트를 작성하면 데이터베이스에 작은 문제가 있어도 단원 테스트가 실패할 수 있다.또한 단원 테스트를 실행할 때 실시간 데이터베이스는 추가 부하를 부담한다.
본 블로그에서는 데이터 수집과 LINQ 조회 기반 선택 과정을 시뮬레이션하는 방법을 설명합니다.
녀석들을 탐색해 보자!
테스트 방법
LINQ를 사용하여 ASP에서 다음 방법을 시뮬레이션하여 테스트합니다.NET 핵심 어플리케이션고객의 전자 우편 ID를 매개 변수로 이 방법에 제공할 때, 이 방법은 고객 ID (int) 로 돌아가야 한다.
public int GetCustomerIdBasedOnEmail(string customerEmail)
{
int customerId = 0;
if (!string.IsNullOrEmpty(customerEmail))
{
try
{
using (CustomerEntity context = this.CustomerEntity ?? new CustomerEntity())
{
customerId = (from user in context.CustomerData
where user.email == customerEmail
select user.Id).FirstOrDefault();
}
this.CustomerEntity = null;
}
catch (Exception ex)
{
}
}
return customerId;
}
절차.
ASP에서 LINQ 시뮬레이션을 수행하려면 다음 절차를 따르십시오.NET 핵심 애플리케이션:
1단계: 데이터 초기화
여기서 우리는 데이터가 어떻게 아날로그 데이터 수집에 분배되는지 검사할 것이다.다음 사항에 유의하십시오.
이 상하문에서 시뮬레이션할 테이블 데이터를 설정할 수 있습니다.테이블 데이터의 초기화는 이 테이블에 삽입된 아날로그 데이터로 간주됩니다.아날로그 데이터는 테스트 용례에 따라 다를 수 있습니다.
아래의 코드 예시를 참고하시오.
public class MockCustomerContext<T>
{
/// <summary>
/// Get Customer context mock object
/// </summary>
/// <returns>Context object</returns>
public CustomerEntity GetCustomerContext()
{
var options = new DbContextOptionsBuilder<CustomerEntity>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
.Options;
var context = new CustomerEntity(options);
// CustomerData => table name
context.CustomerData.Add(new CustomerData { Id = 111, email = "[email protected]" });
context.SaveChanges();
return context;
}
}
2단계: 클래스 객체를 작성할 때 아날로그 컨텍스트 호출
우리는 단원 테스트를 할 클래스 대상에 아날로그 데이터를 수집하는 방법을 필요로 한다.다음 사항도 고려해야 합니다.
this.ICustomerDataAccess = Substitute.For<ICustomerDataAccess>();
this.ICustomerDataAccess.CustomerEntity = new MockCustomerContext<CustomerEntity>().GetCustomerContext();
this.CustomerDataAccess = new CustomerDataAccess(this.ICustomerDataAccess);
3단계: 테스트 용례 작성
그리고 LINQ 조회를 검증하기 위해 테스트 용례에서 동작 (실행할 동작) 과 단언 (검증 동작) 을 설명할 수 있습니다.이렇게 하려면 아래 코드 예제에서 설명한 대로 Act 및 Assert에서 메소드를 호출해야 합니다.여기는 테스트 대상이 비어 있는지 여부입니다.
/// <summary>
/// Valid Customer.
/// </summary>
[Test]
public void GetCustomerIdBasedOnEmail_ValidCustomerEmail_ReturnCustomerId()
{
////Act
int customerId = this.CustomerDataAccess.GetCustomerIdBasedOnEmail("[email protected]");
////Assert
Assert.AreEqual(111, customerId);
}
주의: 집합에서 시뮬레이션한 데이터에 따라 임의의 테스트를 수행할 수 있습니다.출력 캡처
여기서 우리는 NUnit을 사용하여 이 사례들을 테스트한다.
GitHub 저장소
자세한 내용은 LINQ Mocking in ASP.NET Core application demo을 참조하십시오.
결론
이 블로그에서 우리는 ASP에서 LINQ 시뮬레이션을 어떻게 실행하는지 배웠다.NET 핵심 응용 프로그램에서 유닛 테스트를 수행합니다.본 블로그에서 제공한 절차를 시도해 보고 다음 평론 부분에서 피드백을 공유하세요.
Syncfusion ASP.NET Core UI controls 라이브러리는 애플리케이션 구축에 필요한 유일한 제품군입니다.이 패키지에는 70개 이상의 고성능, 경량, 모듈식 및 응답성 있는 UI 컨트롤이 포함되어 있습니다.그것들로 너의 생산력을 높여라!
아래 섹션 외에도 support forums, Direct-Trac 또는 feedback portal을 통해 문의하실 수 있습니다.우리는 언제든지 기꺼이 당신을 돕겠습니다!
만약 당신이 이 블로그를 좋아한다면, 우리는 당신도 아래의 블로그와 전자책을 좋아할 것이라고 생각합니다.
[블로그]
[블로그]
[블로그]
LINQ Succinctly [전자책]
Unit Testing Succinctly [전자책]
Reference
이 문제에 관하여(셀 테스트 ASP에서 LINQ 시뮬레이션을 쉽게 수행할 수 있습니다.NET 핵심 어플리케이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/syncfusion/easily-perform-linq-mocking-to-unit-test-asp-net-core-application-4f2p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)