Browse Source

Update tutorials's unit test code for 8.0 changes.

pull/18569/head
maliming 3 years ago
parent
commit
ab37edbd1b
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 8
      docs/en/Tutorials/Part-10.md
  2. 51
      docs/en/Tutorials/Part-4.md
  3. 44
      docs/en/Tutorials/Part-8.md

8
docs/en/Tutorials/Part-10.md

@ -614,14 +614,14 @@ using System.Threading.Tasks;
using Acme.BookStore.Authors; using Acme.BookStore.Authors;
using Shouldly; using Shouldly;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Modularity;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Xunit; using Xunit;
namespace Acme.BookStore.Books; namespace Acme.BookStore.Books;
{{if DB=="Mongo"}} public abstract class BookAppService_Tests<TStartupModule> : BookStoreApplicationTestBase<TStartupModule>
[Collection(BookStoreTestConsts.CollectionDefinitionName)]{{end}} where TStartupModule : IAbpModule
public class BookAppService_Tests : BookStoreApplicationTestBase
{ {
private readonly IBookAppService _bookAppService; private readonly IBookAppService _bookAppService;
private readonly IAuthorAppService _authorAppService; private readonly IAuthorAppService _authorAppService;
@ -643,7 +643,7 @@ public class BookAppService_Tests : BookStoreApplicationTestBase
//Assert //Assert
result.TotalCount.ShouldBeGreaterThan(0); result.TotalCount.ShouldBeGreaterThan(0);
result.Items.ShouldContain(b => b.Name == "1984" && result.Items.ShouldContain(b => b.Name == "1984" &&
b.AuthorName == "George Orwell"); b.AuthorName == "George Orwell");
} }
[Fact] [Fact]

51
docs/en/Tutorials/Part-4.md

@ -82,15 +82,14 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Shouldly; using Shouldly;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Modularity;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Xunit; using Xunit;
namespace Acme.BookStore.Books; namespace Acme.BookStore.Books;
{{if DB=="Mongo"}} public abstract class BookAppService_Tests<TStartupModule> : BookStoreApplicationTestBase<TStartupModule>
[Collection(BookStoreTestConsts.CollectionDefinitionName)] where TStartupModule : IAbpModule
{{end}}
public class BookAppService_Tests : BookStoreApplicationTestBase
{ {
private readonly IBookAppService _bookAppService; private readonly IBookAppService _bookAppService;
@ -114,6 +113,41 @@ public class BookAppService_Tests : BookStoreApplicationTestBase
} }
```` ````
{{if DB == "EF"}}
Add a new implementation class of `BookAppService_Tests` class, named `EfCoreBookAppService_Tests` in the `EntityFrameworkCore\Applications\Books` namespace (folder) of the `Acme.BookStore.EntityFrameworkCore.Tests` project:
````csharp
using Acme.BookStore.Books;
using Xunit;
namespace Acme.BookStore.EntityFrameworkCore.Applications.Books;
[Collection(BookStoreTestConsts.CollectionDefinitionName)]
public class EfCoreBookAppService_Tests : BookAppService_Tests<BookStoreEntityFrameworkCoreTestModule>
{
}
````
{{end}}
{{if DB == "Mongo"}}
Add a new implementation class of `BookAppService_Tests` class, named `MongoDBBookAppService_Tests` in the `MongoDb\Applications\Books` namespace (folder) of the `Acme.BookStore.MongoDB.Tests` project:
````csharp
using Acme.BookStore.MongoDB;
using Acme.BookStore.Books;
using Xunit;
namespace Acme.BookStore.MongoDb.Applications.Books;
[Collection(BookStoreTestConsts.CollectionDefinitionName)]
public class MongoDBBookAppService_Tests : BookAppService_Tests<BookStoreMongoDbTestModule>
{
}
````
{{end}}
* `Should_Get_List_Of_Books` test simply uses `BookAppService.GetListAsync` method to get and check the list of books. * `Should_Get_List_Of_Books` test simply uses `BookAppService.GetListAsync` method to get and check the list of books.
* We can safely check the book "1984" by its name, because we know that this books is available in the database since we've added it in the seed data. * We can safely check the book "1984" by its name, because we know that this books is available in the database since we've added it in the seed data.
@ -174,15 +208,14 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Shouldly; using Shouldly;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Modularity;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Xunit; using Xunit;
namespace Acme.BookStore.Books; namespace Acme.BookStore.Books;
{{if DB=="Mongo"}} public abstract class BookAppService_Tests<TStartupModule> : BookStoreApplicationTestBase<TStartupModule>
[Collection(BookStoreTestConsts.CollectionDefinitionName)] where TStartupModule : IAbpModule
{{end}}
public class BookAppService_Tests : BookStoreApplicationTestBase
{ {
private readonly IBookAppService _bookAppService; private readonly IBookAppService _bookAppService;
@ -203,7 +236,7 @@ public class BookAppService_Tests : BookStoreApplicationTestBase
result.TotalCount.ShouldBeGreaterThan(0); result.TotalCount.ShouldBeGreaterThan(0);
result.Items.ShouldContain(b => b.Name == "1984"); result.Items.ShouldContain(b => b.Name == "1984");
} }
[Fact] [Fact]
public async Task Should_Create_A_Valid_Book() public async Task Should_Create_A_Valid_Book()
{ {

44
docs/en/Tutorials/Part-8.md

@ -481,18 +481,17 @@ Finally, we can write some tests for the `IAuthorAppService`. Add a new class, n
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Shouldly; using Shouldly;
using Volo.Abp.Modularity;
using Xunit; using Xunit;
namespace Acme.BookStore.Authors; namespace Acme.BookStore.Authors;
{{if DB=="Mongo"}} public abstract class AuthorAppService_Tests<TStartupModule> : BookStoreApplicationTestBase<TStartupModule>
[Collection(BookStoreTestConsts.CollectionDefinitionName)] where TStartupModule : IAbpModule
{{end}}
public class AuthorAppService_Tests : BookStoreApplicationTestBase
{ {
private readonly IAuthorAppService _authorAppService; private readonly IAuthorAppService _authorAppService;
public AuthorAppService_Tests() protected AuthorAppService_Tests()
{ {
_authorAppService = GetRequiredService<IAuthorAppService>(); _authorAppService = GetRequiredService<IAuthorAppService>();
} }
@ -554,6 +553,41 @@ public class AuthorAppService_Tests : BookStoreApplicationTestBase
} }
```` ````
{{if DB == "EF"}}
Add a new implementation class of `AuthorAppService_Tests` class, named `EfCoreAuthorAppService_Tests` in the `EntityFrameworkCore\Applications\Authors` namespace (folder) of the `Acme.BookStore.EntityFrameworkCore.Tests` project:
````csharp
using Acme.BookStore.Authors;
using Xunit;
namespace Acme.BookStore.EntityFrameworkCore.Applications.Authors;
[Collection(BookStoreTestConsts.CollectionDefinitionName)]
public class EfCoreAuthorAppService_Tests : AuthorAppService_Tests<BookStoreEntityFrameworkCoreTestModule>
{
}
````
{{end}}
{{if DB == "Mongo"}}
Add a new implementation class of `AuthorAppService_Tests` class, named `MongoDBAuthorAppService_Tests` in the `MongoDb\Applications\Authors` namespace (folder) of the `Acme.BookStore.MongoDB.Tests` project:
````csharp
using Acme.BookStore.MongoDB;
using Acme.BookStore.Authors;
using Xunit;
namespace Acme.BookStore.MongoDb.Applications.Authors;
[Collection(BookStoreTestConsts.CollectionDefinitionName)]
public class MongoDBAuthorAppService_Tests : AuthorAppService_Tests<BookStoreMongoDbTestModule>
{
}
````
{{end}}
Created some tests for the application service methods, which should be clear to understand. Created some tests for the application service methods, which should be clear to understand.
## The Next Part ## The Next Part

Loading…
Cancel
Save