Edition 0 Updated to asp. Net core 0


Implementing unit tests for ASP.NET Core Web APIs



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə139/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   135   136   137   138   139   140   141   142   ...   288
NET-Microservices-Architecture-for-Containerized-NET-Applications

Implementing unit tests for ASP.NET Core Web APIs 
Unit testing involves testing a part of an application in isolation from its infrastructure and 
dependencies. When you unit test controller logic, only the content of a single action or method is 
tested, not the behavior of its dependencies or of the framework itself. Unit tests do not detect issues 
in the interaction between components

that is the purpose of integration testing. 
As you unit test your controller actions, make sure you focus only on their behavior. A controller unit 
test avoids things like filters, routing, or model binding (the mapping of request data to a ViewModel 
or DTO). Because they focus on testing just one thing, unit tests are generally simple to write and 
quick to run. A well-written set of unit tests can be run frequently without much overhead. 
Unit tests are implemented based on test frameworks like xUnit.net, MSTest, Moq, or NUnit. For the 
eShopOnContainers sample application, we are using xUnit. 
When you write a unit test for a Web API controller, you instantiate the controller class directly using 
the new keyword in C#, so that the test will run as fast as possible. The following example shows how 
to do this when using 
xUnit
 as the Test framework. 
[Fact] 
public
async Task 
Get_order_detail_success
() 

//Arrange
var
fakeOrderId = 
"12"

var
fakeOrder = 
GetFakeOrder
(); 
//...
//Act
var
orderController = 
new
OrderController

_orderServiceMock.
Object

_basketServiceMock.
Object

_identityParserMock.
Object
); 
orderController.
ControllerContext
.
HttpContext
= _contextMock.
Object

var
actionResult = await orderController.
Detail
(fakeOrderId); 
//Assert
var
viewResult = Assert.
IsType
(actionResult); 
Assert.
IsAssignableFrom
(viewResult.
ViewData
.
Model
); 



154 
CHAPTER 5 | Designing and Developing Multi-Container and Microservice-Based .NET Applications 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   135   136   137   138   139   140   141   142   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin