dotnet-testing-advanced
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-advanced
Agent 安装分布
Skill 文档
.NET é²é測試æè½ç¸½è¦½
ð¤ AI Agent éè¦æç¤º
ç¶æ¨ï¼AI Agentï¼è¢«è¼å ¥æ¤é²éå ¥å£ skill æï¼è«å é±è®ä»¥ä¸æå¼ï¼
ð æ¬æè½çå®ä½
æ¬æªæ¡æ¯ãé²é測試å°èªä¸å¿ãï¼ç¨æ¼å¹«å©æ¾å°æ£ç¢ºçé²éåæè½ã
æ¨ç任忝
- â æ ¹æä½¿ç¨è éæ±å¹é å°æçé²éåæè½
- â
使ç¨
Skilltool è¼å ¥å ·é«çåæè½ - â è®åæè½æä¾å°æ¥çæ´å測試æå¼
ç¦æ¢è¡çº
- â ä¸è¦å¨æ¬å ¥å£ skill ä¸ç´æ¥æä¾æ´å測試ç¨å¼ç¢¼
- â ä¸è¦å¨æ²æè¼å ¥åæè½çæ æ³ä¸éå§å¯¦ä½æ¸¬è©¦
- â ä¸è¦è·³éåæè½ç´æ¥æä¾ãä¸è¬æ§ãæ´å測試建è°
ð¯ å¿«éæè½å°ç §è¡¨ï¼AI Agent å¿ è®ï¼
使ç¨è æå°çééµå â æè¼å ¥çé²éåæè½
æ´å測試æè½
| 使ç¨è 說… | è¼å ¥æä»¤ | ç¨é說æ |
|---|---|---|
| API 測試ãController 測試ãç«¯é»æ¸¬è©¦ | /skill dotnet-testing-advanced-aspnet-integration-testing |
åºç¤ API æ´å測試 |
| 宿´ CRUDãWebAPI æ¸¬è©¦ãæ¥åæµç¨æ¸¬è©¦ | /skill dotnet-testing-advanced-webapi-integration-testing |
宿´ API æµç¨æ¸¬è©¦ |
| WebApplicationFactoryãTestServer | /skill dotnet-testing-advanced-aspnet-integration-testing |
WebApplicationFactory ä½¿ç¨ |
容å¨å測試æè½
| 使ç¨è 說… | è¼å ¥æä»¤ | ç¨é說æ |
|---|---|---|
| SQL Server 容å¨ãPostgreSQLãMySQL | /skill dotnet-testing-advanced-testcontainers-database |
éè¯å¼è³æåº«å®¹å¨æ¸¬è©¦ |
| MongoDBãRedisãElasticsearch | /skill dotnet-testing-advanced-testcontainers-nosql |
NoSQL è³æåº«å®¹å¨æ¸¬è©¦ |
| çå¯¦è³æåº«ãEF Core 測試ãDapper 測試 | /skill dotnet-testing-advanced-testcontainers-database |
çå¯¦è³æåº«è¡çºæ¸¬è©¦ |
| Testcontainersã容卿¸¬è©¦ãDocker 測試 | /skill dotnet-testing-advanced-testcontainers-database |
Testcontainers åºç¤ |
å¾®æå測試æè½
| 使ç¨è 說… | è¼å ¥æä»¤ | ç¨é說æ |
|---|---|---|
| .NET Aspireãå¾®æå測試ã忣弿¸¬è©¦ | /skill dotnet-testing-advanced-aspire-testing |
Aspire å¾®æå測試 |
| DistributedApplicationãæåééè¨ | /skill dotnet-testing-advanced-aspire-testing |
Aspire æç¨æ¸¬è©¦ |
æ¡æ¶åç´æè½
| 使ç¨è 說… | è¼å ¥æä»¤ | ç¨é說æ |
|---|---|---|
| xUnit åç´ãxUnit 3.xãçæ¬åç´ | /skill dotnet-testing-advanced-xunit-upgrade-guide |
xUnit 2.x â 3.x åç´ |
| TUnitãæ°æ¸¬è©¦æ¡æ¶ãTUnit åºç¤ | /skill dotnet-testing-advanced-tunit-fundamentals |
TUnit åºç¤èé·ç§» |
| TUnit é²éãTUnit DIãå¹³è¡å·è¡ | /skill dotnet-testing-advanced-tunit-advanced |
TUnit é²éåè½ |
â ï¸ ä½¿ç¨æµç¨ç¯ä¾
â æ£ç¢ºæµç¨
使ç¨è
ï¼è«å¹«æå»ºç« ProductsController ç API æ´å測試
AIï¼ææ³¨æå°æ¨éè¦é²è¡ API æ´åæ¸¬è©¦ãæ ¹æå¿«éå°ç
§è¡¨ï¼
ææè©²è¼å
¥ dotnet-testing-advanced-aspnet-integration-testing skillã
[ä½¿ç¨ Skill tool è¼å
¥åæè½]
AIï¼ç¾å¨æç
§ ASP.NET Core Integration Testing skill çæå¼çºæ¨å»ºç«æ¸¬è©¦...
â é¯èª¤æµç¨
使ç¨è
ï¼è«å¹«æå»ºç« ProductsController ç API æ´å測試
AIï¼å¥½çï¼æä¾å¯«æ´å測試...ï¼ç´æ¥éå§å¯«ç¨å¼ç¢¼ï¼æ²æè¼å
¥åæè½ï¼
ð 宿´æè½æ¸ å®
å¦éæ¥ç宿´ç 8 åé²éæè½æ¸ å®ãè©³ç´°æ±ºçæ¨¹ãå¸ç¿è·¯å¾å»ºè°ï¼è«ç¹¼çºé±è®æ¬æªæ¡å¾çºå §å®¹ã
人é¡éç¼è åèï¼å¦éå¿«éæ¥æ¾ï¼è«æ¥ç SKILLS_QUICK_INDEX.md
é©ç¨æ å¢
ç¶æ¨éè¦ä»¥ä¸é²é測試è½åæï¼ææå婿¨æ¾å°æ£ç¢ºçæè½ï¼
- æ¸¬è©¦å®æ´ç Web API 端é»è HTTP æµç¨
- 卿¸¬è©¦ä¸ä½¿ç¨ç實çè³æåº«ï¼å®¹å¨åï¼
- 測試 NoSQL è³æåº«ï¼MongoDBãRedis çï¼
- 測試微æåæ¶æ§è忣å¼ç³»çµ±
- åç´æ¸¬è©¦æ¡æ¶çæ¬ï¼xUnit 2.x â 3.xï¼
- é·ç§»å°æ°æ¸¬è©¦æ¡æ¶ï¼TUnitï¼
- 建ç«ç«¯å°ç«¯çæ´å測試
å¿«éæ±ºç樹
æéè¦åªç¨®é²é測試ï¼
æ å¢ 1ï¼æ¸¬è©¦ ASP.NET Core Web API
é¸é
A – åºç¤ API 測試
â dotnet-testing-advanced-aspnet-integration-testing
é©åï¼
- ç°¡å®ç API ç«¯é»æ¸¬è©¦
- ä¸éè¦çå¯¦è³æåº«ï¼ä½¿ç¨è¨æ¶é«è³æåº«ï¼
- 測試路ç±ã模åç¶å®ãHTTP åæ
æ¶µèå §å®¹ï¼
- WebApplicationFactory 使ç¨
- TestServer è¨å®
- HTTP åæé©è
- è¨æ¶é«è³æåº«é ç½®
é¸é
B – 宿´ç WebAPI æµç¨æ¸¬è©¦
â dotnet-testing-advanced-webapi-integration-testing
é©åï¼
- 宿´ç CRUD API 測試
- éè¦æ¸¬è©¦å®æ´çæ¥åæµç¨
- éè¦æ¸¬è©¦è³ææºåèæ¸ ç
æ¶µèå §å®¹ï¼
- 宿´ç GETãPOSTãPUTãDELETE 測試
- é¯èª¤èçé©è
- 測試åºåºé¡å¥æ¨¡å¼
- è³ææºåçç¥
æ å¢ 2ï¼æ¸¬è©¦éè¦çå¯¦è³æåº«
é¸é
A – éè¯å¼è³æåº«ï¼SQL ServerãPostgreSQLãMySQLï¼
â dotnet-testing-advanced-testcontainers-database
é©åï¼
- Entity Framework Core 測試
- Dapper 測試
- çå¯¦è³æåº«è¡çºé©è
- éè¦æ¸¬è©¦è³æåº«ç¹å®åè½ï¼stored proceduresãtriggers çï¼
æ¯æ´è³æåº«ï¼
- SQL Server
- PostgreSQL
- MySQL
- MariaDB
é¸é
B – NoSQL è³æåº«ï¼MongoDBãRedisãElasticsearchï¼
â dotnet-testing-advanced-testcontainers-nosql
é©åï¼
- MongoDB æä»¶æä½æ¸¬è©¦
- Redis å¿«åæ¸¬è©¦
- Elasticsearch æå°æ¸¬è©¦
- NoSQL ç¹æåè½æ¸¬è©¦
æ¯æ´è³æåº«ï¼
- MongoDB
- Redis
- Elasticsearch
æ å¢ 3ï¼æ¸¬è©¦å¾®æåæ¶æ§
â dotnet-testing-advanced-aspire-testing
é©åï¼
- .NET Aspire å°æ¡
- åæ£å¼æç¨æ¸¬è©¦
- æåééè¨æ¸¬è©¦
- å¾®æåæ´å測試
æ¶µèå §å®¹ï¼
- DistributedApplication 測試
- æåä¾è³´ç®¡ç
- è·¨æå測試
- 測試容å¨ç·¨æ
æ å¢ 4ï¼åç´æé·ç§»æ¸¬è©¦æ¡æ¶
é¸é
A – xUnit åç´ï¼2.x â 3.xï¼
â dotnet-testing-advanced-xunit-upgrade-guide
é©åï¼
- ç¾æå°æ¡ä½¿ç¨ xUnit 2.x
- æ³åç´å° xUnit 3.x
- äºè§£çæ¬å·®ç°
æ¶µèå §å®¹ï¼
- éå¤§è®æ´èªªæ
- åç´æ¥é©æå¼
- ç¸å®¹æ§åé¡èç
- æä½³å¯¦è¸
é¸é
B – é·ç§»å° TUnitï¼åºç¤ï¼
â dotnet-testing-advanced-tunit-fundamentals
é©åï¼
- è©ä¼°æ¯å¦é·ç§»å° TUnit
- äºè§£ TUnit åºç¤
- å¸ç¿ TUnit è xUnit çå·®ç°
æ¶µèå §å®¹ï¼
- TUnit æ ¸å¿æ¦å¿µ
- è xUnit å°æ¯
- é·ç§»æ¥é©
- åºæ¬ä½¿ç¨æ¹å¼
é¸é
C – TUnit é²éåè½
â dotnet-testing-advanced-tunit-advanced
é©åï¼
- å·²ä½¿ç¨ TUnit åºç¤
- æ³æ·±å ¥ä½¿ç¨ TUnit åè½
- éè¦å¹³è¡å·è¡ãä¾è³´æ³¨å ¥çé²éç¹æ§
æ¶µèå §å®¹ï¼
- è³æé© åæ¸¬è©¦
- ä¾è³´æ³¨å ¥
- å¹³è¡å·è¡æ§å¶
- é²éç¹æ§
æè½åé¡å°å
1. æ´å測試ï¼4 åæè½ï¼- Web API 測試
| æè½å稱 | 測試ç¯å | è³æåº« | é©ç¨å ´æ¯ |
|---|---|---|---|
dotnet-testing-advanced-aspnet-integration-testing |
WebApplicationFactoryãTestServerãHTTP åæ | è¨æ¶é«è³æåº« | åºç¤ API æ´å測試 |
dotnet-testing-advanced-webapi-integration-testing |
宿´ CRUDãé¯èª¤èçãæ¥åæµç¨ | è¨æ¶é«/ç實 | ç實 API å°æ¡æ¸¬è©¦ |
dotnet-testing-advanced-testcontainers-database |
SQL ServerãPostgreSQLãMySQL | ç實ï¼å®¹å¨åï¼ | éè¦çå¯¦è³æåº«è¡çº |
dotnet-testing-advanced-testcontainers-nosql |
MongoDBãRedisãElasticsearch | ç實ï¼å®¹å¨åï¼ | NoSQL è³æåº«æ¸¬è©¦ |
æè½è©³ç´°èªªæ
aspnet-integration-testing
æ ¸å¿å¹å¼ï¼
- å¸ç¿ WebApplicationFactory åºç¤
- çè§£æ´å測試æ¦å¿µ
- 測試 HTTP 端é»èä¸ååç實伺æå¨
é©åæ å¢ï¼
- API 端é»åºç¤æ¸¬è©¦
- è·¯ç±é©è
- ä¸ä»è»é«æ¸¬è©¦
- ä¸éè¦çå¯¦è³æåº«
å¸ç¿é£åº¦ï¼ââ ä¸ç
åç½®æè½ï¼
dotnet-testing-unit-test-fundamentalsï¼å¿ é ï¼dotnet-testing-awesome-assertions-guideï¼å»ºè°ï¼
webapi-integration-testing
æ ¸å¿å¹å¼ï¼
- 宿´ç API 測試æµç¨
- æ¸¬è©¦è³æç®¡ççç¥
- é¯èª¤èçé©è
- ç實æ¥åå ´æ¯æ¸¬è©¦
é©åæ å¢ï¼
- æ£å¼å°æ¡ç API 測試
- 宿´ç CRUD æµç¨
- è¤éçæ¥åé輯é©è
- éè¦æ¸¬è©¦è³ææºåèæ¸ ç
å¸ç¿é£åº¦ï¼âââ ä¸é«
åç½®æè½ï¼
dotnet-testing-advanced-aspnet-integration-testingï¼å¿ é ï¼dotnet-testing-nsubstitute-mockingï¼å»ºè°ï¼
testcontainers-database
æ ¸å¿å¹å¼ï¼
- 使ç¨çå¯¦è³æåº«æ¸¬è©¦
- èªåå容å¨ç®¡ç
- æ¸¬è©¦è³æåº«ç¹å®åè½
- éé¢ç測試ç°å¢
é©åæ å¢ï¼
- EF Core 測試
- Dapper 測試
- Stored Procedures 測試
- è³æåº«é·ç§»æ¸¬è©¦
å¸ç¿é£åº¦ï¼âââ ä¸é«
åç½®æè½ï¼
dotnet-testing-unit-test-fundamentalsï¼å¿ é ï¼- Docker åºç¤ç¥èï¼å¿ é ï¼
æè¡éæ±ï¼
- Docker Desktop å·²å®è£
- WSL2ï¼Windows ç°å¢ï¼
testcontainers-nosql
æ ¸å¿å¹å¼ï¼
- 測試 NoSQL è³æåº«æä½
- 容å¨å NoSQL ç°å¢
- çå¯¦è³æåº«è¡çºé©è
é©åæ å¢ï¼
- MongoDB æä»¶æä½
- Redis å¿«åé輯
- Elasticsearch æå°åè½
å¸ç¿é£åº¦ï¼âââ ä¸é«
åç½®æè½ï¼
dotnet-testing-advanced-testcontainers-databaseï¼å»ºè°ï¼- NoSQL è³æåº«åºç¤ç¥è
2. å¾®æå測試ï¼1 åæè½ï¼- 忣å¼ç³»çµ±
| æè½å稱 | 測試ç¯å | æ¶æ§ | é©ç¨å ´æ¯ |
|---|---|---|---|
dotnet-testing-advanced-aspire-testing |
.NET Aspire åæ£å¼æç¨ | å¾®æå | é²åçãå¾®æåæ¶æ§ |
æè½è©³ç´°èªªæ
aspire-testing
æ ¸å¿å¹å¼ï¼
- 測試 .NET Aspire å°æ¡
- åæ£å¼æç¨æ´å測試
- æåä¾è³´ç®¡ç
- 端å°ç«¯æµç¨é©è
é©åæ å¢ï¼
- .NET Aspire å¾®æåå°æ¡
- 夿åå使¸¬è©¦
- æåç¼ç¾æ¸¬è©¦
- 忣å¼è¿½è¹¤é©è
å¸ç¿é£åº¦ï¼ââââ é«
åç½®æè½ï¼
dotnet-testing-advanced-aspnet-integration-testingï¼å¿ é ï¼dotnet-testing-advanced-testcontainers-databaseï¼å»ºè°ï¼- .NET Aspire åºç¤ç¥èï¼å¿ é ï¼
æè¡éæ±ï¼
- .NET 8+
- .NET Aspire Workload
- Docker Desktop
æ¶µèå §å®¹ï¼
- DistributedApplication 測試
- æåééè¨æ¸¬è©¦
- ä¾è³´æå管ç
- 測試容å¨ç·¨æ
3. æ¡æ¶é·ç§»ï¼3 åæè½ï¼- æ¸¬è©¦æ¡æ¶åç´
| æè½å稱 | é·ç§»è·¯å¾ | é£åº¦ | é©ç¨å ´æ¯ |
|---|---|---|---|
dotnet-testing-advanced-xunit-upgrade-guide |
xUnit 2.x â 3.x | ââ ä¸ç | åç´ç¾æ xUnit å°æ¡ |
dotnet-testing-advanced-tunit-fundamentals |
xUnit â TUnitï¼åºç¤ï¼ | ââ ä¸ç | è©ä¼°æé·ç§»å° TUnit |
dotnet-testing-advanced-tunit-advanced |
TUnit é²éåè½ | âââ ä¸é« | æ·±å ¥ä½¿ç¨ TUnit |
æè½è©³ç´°èªªæ
xunit-upgrade-guide
æ ¸å¿å¹å¼ï¼
- äºè§£ xUnit 3.x æ°ç¹æ§
- èçåç´åé¡
- é·ç§»æ¥é©æå¼
é©åæ å¢ï¼
- å°æ¡ä½¿ç¨ xUnit 2.x
- æ³åç´å°ææ°çæ¬
- äºè§£çæ¬å·®ç°
å¸ç¿é£åº¦ï¼ââ ä¸ç
æ¶µèå §å®¹ï¼
- éå¤§è®æ´æ¸ å®
- å¥ä»¶åç´æ¥é©
- ç¸å®¹æ§åé¡èç
- åç´æª¢æ¥æ¸ å®
使åç´ï¼
- éè¦ xUnit 3.x æ°åè½
- .NET 9+ å°æ¡
- 解決已ç¥åé¡
tunit-fundamentals
æ ¸å¿å¹å¼ï¼
- äºè§£ TUnit æ°ä¸ä»£æ¸¬è©¦æ¡æ¶
- å¸ç¿ TUnit æ ¸å¿æ¦å¿µ
- è©ä¼°é·ç§»å¯è¡æ§
é©åæ å¢ï¼
- èæ ®å¾ xUnit é·ç§»
- æ°å°æ¡é¸ææ¸¬è©¦æ¡æ¶
- äºè§£ç¾ä»£æ¸¬è©¦æ¡æ¶
å¸ç¿é£åº¦ï¼ââ ä¸ç
æ¶µèå §å®¹ï¼
- TUnit vs xUnit å°æ¯
- åºæ¬æ¸¬è©¦æ°å¯«
- 屬æ§èæ·è¨
- é·ç§»å»ºè°
TUnit åªå¢ï¼
- æ´å¥½çæè½
- åçæ¯æ´ä¾è³´æ³¨å ¥
- æ´éæ´»çæ¸¬è©¦çµç¹
- ç¾ä»£åç API è¨è¨
tunit-advanced
æ ¸å¿å¹å¼ï¼
- æ·±å ¥ä½¿ç¨ TUnit é²éåè½
- å¹³è¡å·è¡æ§å¶
- ä¾è³´æ³¨å ¥æ´å
- è³æé© åæ¸¬è©¦
é©åæ å¢ï¼
- å·²ä½¿ç¨ TUnit åºç¤
- éè¦é²éåè½
- 大忏¬è©¦å°æ¡
å¸ç¿é£åº¦ï¼âââ ä¸é«
åç½®æè½ï¼
dotnet-testing-advanced-tunit-fundamentalsï¼å¿ é ï¼
æ¶µèå §å®¹ï¼
- é²éè³æé© åæ¸¬è©¦
- ä¾è³´æ³¨å ¥å®¹å¨
- 測試å·è¡æ§å¶
- èªè¨æ¸¬è©¦æ¡æ¶è¡çº
常è¦ä»»åæ å°è¡¨
ä»»å 1ï¼æ¸¬è©¦ ASP.NET Core Web APIï¼åºç¤ï¼
æ å¢ï¼çºç°¡å®ç ProductsController å»ºç«æ´å測試
æ¨è¦æè½ï¼
dotnet-testing-advanced-aspnet-integration-testing
é©ç¨æ¢ä»¶ï¼
- ç°¡å®ç CRUD API
- ä¸éè¦çå¯¦è³æåº«
- æ¸¬è©¦åºæ¬ç HTTP 端é»
å¯¦æ½æ¥é©ï¼
- å»ºç« CustomWebApplicationFactory
- è¨å®è¨æ¶é«è³æåº«
- æ°å¯« GETãPOST 測試
- ä½¿ç¨ FluentAssertions.Web é©èåæ
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-aspnet-integration-testing skill
çºæç ProductsController å»ºç«æ´å測試ãController æ GetAll å GetById å
©å端é»ã
é æç¨å¼ç¢¼çµæ§ï¼
public class ProductsControllerTests : IClassFixture<CustomWebApplicationFactory>
{
private readonly HttpClient _client;
public ProductsControllerTests(CustomWebApplicationFactory factory)
{
_client = factory.CreateClient();
}
[Fact]
public async Task GetAll_ShouldReturnProducts()
{
// Act
var response = await _client.GetAsync("/api/products");
// Assert
response.Should().Be200Ok();
var products = await response.Content.ReadFromJsonAsync<List<Product>>();
products.Should().NotBeEmpty();
}
}
ä»»å 2ï¼æ¸¬è©¦ ASP.NET Core Web APIï¼å®æ´æµç¨ï¼
æ å¢ï¼çº ShippersController 建ç«å®æ´ç CRUD 測試
æ¨è¦æè½ï¼
dotnet-testing-advanced-webapi-integration-testing
é©ç¨æ¢ä»¶ï¼
- 宿´ç CRUD API
- éè¦æ¸¬è©¦é¯èª¤èç
- éè¦æ¸¬è©¦è³ææºåèæ¸ ç
å¯¦æ½æ¥é©ï¼
- å»ºç«æ¸¬è©¦åºåºé¡å¥ï¼BaseIntegrationTestï¼
- å¯¦ä½ IAsyncLifetime é²è¡è³ææºå/æ¸ ç
- æ¸¬è©¦ææ CRUD 端é»
- é©èé¯èª¤èçï¼404ã400ã409 çï¼
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-webapi-integration-testing skill
çºæç ShippersController 建ç«å®æ´ç CRUD 測試ãéè¦æ¸¬è©¦ï¼
- GET /api/shippersï¼å徿æï¼
- GET /api/shippers/{id}ï¼åå¾å®ä¸ï¼
- POST /api/shippersï¼æ°å¢ï¼
- PUT /api/shippers/{id}ï¼æ´æ°ï¼
- DELETE /api/shippers/{id}ï¼åªé¤ï¼
並ä¸é©èé¯èª¤æ
å¢ï¼å¦æ¾ä¸å°è³æºï¼ã
é ææ¸¬è©¦æ¶µèï¼
- â GET æååå³è³æ
- â GET ä¸åå¨ç ID åå³ 404
- â POST æ°å¢æå
- â POST ç¡æè³æåå³ 400
- â PUT æ´æ°æå
- â PUT ä¸åå¨ç ID åå³ 404
- â DELETE åªé¤æå
- â DELETE ä¸åå¨ç ID åå³ 404
ä»»å 3ï¼æ¸¬è©¦éè¦çå¯¦è³æåº«çç¨å¼ç¢¼ï¼SQLï¼
æ å¢ï¼æ¸¬è©¦ OrderRepositoryï¼ä½¿ç¨ SQL Serverï¼
æ¨è¦æè½ï¼
dotnet-testing-advanced-testcontainers-database
é©ç¨æ¢ä»¶ï¼
- ä½¿ç¨ EF Core æ Dapper
- éè¦æ¸¬è©¦çå¯¦è³æåº«è¡çº
- éè¦æ¸¬è©¦è³æåº«ç¹å®åè½
å¯¦æ½æ¥é©ï¼
- è¨å® Testcontainers.MsSql
- å·è¡è³æåº«é·ç§»
- 測試 Repository æ¹æ³
- æ¯åæ¸¬è©¦å¾æ¸ çè³æ
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-testcontainers-database skill
çºæç OrderRepository å»ºç«æ¸¬è©¦ãRepository ä½¿ç¨ EF Core 飿¥ SQL Serverã
éè¦æ¸¬è©¦ GetByIdãCreateãUpdateãDelete æ¹æ³ã
é æç¨å¼ç¢¼çµæ§ï¼
public class OrderRepositoryTests : IAsyncLifetime
{
private MsSqlContainer _container;
private OrderDbContext _context;
private OrderRepository _sut;
public async Task InitializeAsync()
{
// åå SQL Server 容å¨
_container = new MsSqlBuilder().Build();
await _container.StartAsync();
// å»ºç« DbContext
var options = new DbContextOptionsBuilder<OrderDbContext>()
.UseSqlServer(_container.GetConnectionString())
.Options;
_context = new OrderDbContext(options);
await _context.Database.MigrateAsync();
_sut = new OrderRepository(_context);
}
[Fact]
public async Task GetById_ExistingOrder_ShouldReturnOrder()
{
// Arrange
var order = new Order { /* ... */ };
await _context.Orders.AddAsync(order);
await _context.SaveChangesAsync();
// Act
var result = await _sut.GetById(order.Id);
// Assert
result.Should().NotBeNull();
result.Id.Should().Be(order.Id);
}
public async Task DisposeAsync()
{
await _container.DisposeAsync();
}
}
ä»»å 4ï¼æ¸¬è©¦ NoSQL è³æåº«ï¼MongoDBãRedisï¼
æ å¢ï¼æ¸¬è©¦ CacheServiceï¼ä½¿ç¨ Redisï¼
æ¨è¦æè½ï¼
dotnet-testing-advanced-testcontainers-nosql
é©ç¨æ¢ä»¶ï¼
- ä½¿ç¨ MongoDBãRedisãElasticsearch
- éè¦æ¸¬è©¦ NoSQL ç¹å®åè½
å¯¦æ½æ¥é©ï¼
- è¨å® Testcontainers.Redis
- 測試快åé輯
- é©èéææé
- 測試快å失æ
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-testcontainers-nosql skill
çºæç CacheService å»ºç«æ¸¬è©¦ãService ä½¿ç¨ Redis åå¿«åã
éè¦æ¸¬è©¦ SetãGetãRemove 以åéææéã
é ææ¸¬è©¦æ¶µèï¼
- â Set æåå²åè³æ
- â Get æååå¾è³æ
- â Get ä¸åå¨çéµåå³ null
- â éææéæ£ç¢ºéä½
- â Remove æåç§»é¤è³æ
ä»»å 5ï¼æ¸¬è©¦å¾®æåæ¶æ§ï¼.NET Aspireï¼
æ å¢ï¼æ¸¬è©¦ .NET Aspire å¾®æåå°æ¡
æ¨è¦æè½ï¼
dotnet-testing-advanced-aspire-testing
é©ç¨æ¢ä»¶ï¼
- ä½¿ç¨ .NET Aspire
- 夿ååä½
- 忣弿ç¨
å¯¦æ½æ¥é©ï¼
- å»ºç« DistributedApplication 測試
- è¨å®æåä¾è³´
- 測試æåééè¨
- é©è宿´æµç¨
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-aspire-testing skill
çºæç .NET Aspire å°æ¡å»ºç«æ¸¬è©¦ãå°æ¡å
å« API Service å Worker Serviceã
éè¦æ¸¬è©¦å
©åæåçåä½ã
ä»»å 6ï¼åç´ xUnit å° 3.x
æ å¢ï¼ç¾æå°æ¡ä½¿ç¨ xUnit 2.9.xï¼æ³åç´å° 3.x
æ¨è¦æè½ï¼
dotnet-testing-advanced-xunit-upgrade-guide
å¯¦æ½æ¥é©ï¼
- äºè§£éå¤§è®æ´
- æ´æ°å¥ä»¶çæ¬
- èçç¸å®¹æ§åé¡
- é©è測試å·è¡
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-xunit-upgrade-guide skill
å婿åç´å°æ¡ä¸ç xUnit å° 3.x çæ¬ãç®åä½¿ç¨ 2.9.2ã
ä»»å 7ï¼è©ä¼°æ¯å¦é·ç§»å° TUnit
æ å¢ï¼èæ ®å¾ xUnit é·ç§»å° TUnit
æ¨è¦æè½ï¼
dotnet-testing-advanced-tunit-fundamentalsï¼äºè§£åºç¤ï¼dotnet-testing-advanced-tunit-advancedï¼è©ä¼°é²éåè½ï¼
å¯¦æ½æ¥é©ï¼
- äºè§£ TUnit è xUnit å·®ç°
- è©ä¼°é·ç§»ææ¬
- è©¦é©æ§é·ç§»ä¸åæ¸¬è©¦æªæ¡
- æ±ºå®æ¯å¦å ¨é¢é·ç§»
æç¤ºè©ç¯ä¾ï¼
è«ä½¿ç¨ dotnet-testing-advanced-tunit-fundamentals skill
è©ä¼°æ¯å¦æå°å°æ¡å¾ xUnit é·ç§»å° TUnitãå°æ¡ç®åæ 500+ 測試ã
æ´å測試層ç´å°æ
æ ¹æå°æ¡è¤é度ï¼é¸æé©åçæ¸¬è©¦çç¥ï¼
Level 1ï¼ç°¡å®ç WebApi å°æ¡
å°æ¡ç¹å¾µï¼
- ç°¡å®ç CRUD API
- ç¡å¤é¨ä¾è³´æä½¿ç¨è¨æ¶é«å¯¦ä½
- æ¥åé輯簡å®
æ¨è¦æè½ï¼
dotnet-testing-advanced-aspnet-integration-testing
測試éé»ï¼
- è·¯ç±é©è
- 模åç¶å®
- HTTP åæ
- åºæ¬æ¥åé輯
ç¯ä¾å°æ¡ï¼
- TodoList API
- ç°¡å®çç¢åç®é
Level 2ï¼ç¸ä¾ Service ç WebApi å°æ¡
å°æ¡ç¹å¾µï¼
- ææ¥åé輯層ï¼Servicesï¼
- ä¾è³´å¤é¨æåï¼å¯ä»¥ Mockï¼
- ä¸çè¤é度
æ¨è¦æè½çµåï¼
dotnet-testing-advanced-aspnet-integration-testingï¼åºç¤ï¼dotnet-testing-nsubstitute-mockingï¼æ¨¡æ¬ä¾è³´ï¼
測試çç¥ï¼
- ä½¿ç¨ NSubstitute å»ºç« Service stub
- 測試 Controller è Service çäºå
- é©èé¯èª¤èç
ç¯ä¾å°æ¡ï¼
- é»å APIï¼æåº«åãè¨å®æåï¼
- CMS 系統
Level 3ï¼å®æ´ç WebApi å°æ¡
å°æ¡ç¹å¾µï¼
- è¤éçæ¥åé輯
- éè¦çå¯¦è³æåº«
- å¯è½æå¤é¨ API æ´å
- 宿´çé¯èª¤èç
æ¨è¦æè½çµåï¼
dotnet-testing-advanced-webapi-integration-testingï¼å®æ´æµç¨ï¼dotnet-testing-advanced-testcontainers-databaseï¼çå¯¦è³æåº«ï¼dotnet-testing-advanced-testcontainers-nosqlï¼å¦æä½¿ç¨ NoSQLï¼
測試çç¥ï¼
- ä½¿ç¨ Testcontainers 建ç«çå¯¦è³æåº«
- 宿´ç端å°ç«¯æ¸¬è©¦
- æ¸¬è©¦è³ææºåèæ¸ ç
- é©èææé¯èª¤æ å¢
ç¯ä¾å°æ¡ï¼
- 大åé»åå¹³å°
- 伿¥ç´ç®¡ç系統
- SaaS æç¨
å¸ç¿è·¯å¾å»ºè°
æ´åæ¸¬è©¦å ¥éï¼1 é±ï¼
ç®æ¨ï¼ææ¡æ´å測試åºç¤ï¼è½çº Web API å»ºç«æ¸¬è©¦
Day 1-2ï¼åºç¤æ´å測試
æè½ï¼dotnet-testing-advanced-aspnet-integration-testing
å¸ç¿éé»ï¼
- WebApplicationFactory æ¦å¿µ
- TestServer 使ç¨
- HTTP åæé©è
- è¨æ¶é«è³æåº«é ç½®
實ä½ç·´ç¿ï¼
- çºç°¡å®ç API å»ºç«æ´å測試
- 測試 GETãPOST 端é»
Day 3-4ï¼å®æ´ WebAPI 測試
æè½ï¼dotnet-testing-advanced-webapi-integration-testing
å¸ç¿éé»ï¼
- 宿´ CRUD 測試
- 測試åºåºé¡å¥è¨è¨
- è³ææºåèæ¸ ç
- é¯èª¤èçé©è
實ä½ç·´ç¿ï¼
- çºå®æ´ç Controller å»ºç«æ¸¬è©¦
- 坦使¸¬è©¦è³æç®¡ç
Day 5-6ï¼å®¹å¨åè³æåº«æ¸¬è©¦
æè½ï¼dotnet-testing-advanced-testcontainers-database
å¸ç¿éé»ï¼
- Testcontainers æ¦å¿µ
- SQL Server 容å¨è¨å®
- è³æåº«é·ç§»å·è¡
- 測試éé¢
實ä½ç·´ç¿ï¼
- çº Repository å»ºç«æ¸¬è©¦
- 使ç¨çå¯¦è³æåº«
Day 7ï¼NoSQL è³æåº«æ¸¬è©¦
æè½ï¼dotnet-testing-advanced-testcontainers-nosql
å¸ç¿éé»ï¼
- MongoDB 容å¨è¨å®
- Redis 容å¨è¨å®
- NoSQL ç¹å®æ¸¬è©¦æ¨¡å¼
實ä½ç·´ç¿ï¼
- 測試 MongoDB Repository
- 測試 Redis Cache Service
å¾®æå測試å°ç²¾ï¼3-5 天ï¼
åç½®æ¢ä»¶ï¼å®ææ´åæ¸¬è©¦å ¥é
æè½ï¼dotnet-testing-advanced-aspire-testing
å¸ç¿éé»ï¼
- .NET Aspire æ¶æ§çè§£
- DistributedApplication 測試
- æåä¾è³´ç®¡ç
- 忣弿¸¬è©¦çç¥
實ä½ç·´ç¿ï¼
- 測試 Aspire å¾®æåå°æ¡
- é©èæåééè¨
æ¡æ¶é·ç§»è·¯å¾ï¼ä¾éæ±ï¼
xUnit åç´ï¼1-2 天ï¼
æè½ï¼dotnet-testing-advanced-xunit-upgrade-guide
å¸ç¿éé»ï¼
- xUnit 3.x æ°ç¹æ§
- éå¤§è®æ´èç
- åç´æ¥é©
- ç¸å®¹æ§æ¸¬è©¦
å¯¦æ½æ¥é©ï¼
- äºè§£çæ¬å·®ç°
- æ´æ°å¥ä»¶
- èçç·¨è¯é¯èª¤
- é©è測試å·è¡
TUnit é·ç§»ï¼2-5 天ï¼
åºç¤ï¼2-3 天ï¼
æè½ï¼dotnet-testing-advanced-tunit-fundamentals
å¸ç¿éé»ï¼
- TUnit æ ¸å¿æ¦å¿µ
- è xUnit å°æ¯
- åºæ¬æ¸¬è©¦æ°å¯«
- é·ç§»å»ºè°
é²éï¼2-3 天ï¼
æè½ï¼dotnet-testing-advanced-tunit-advanced
å¸ç¿éé»ï¼
- è³æé© åæ¸¬è©¦
- ä¾è³´æ³¨å ¥
- å¹³è¡å·è¡æ§å¶
- é²éç¹æ§
æè½çµå建è°
æ ¹æä¸åçå°æ¡éæ±ï¼æ¨è¦ä»¥ä¸æè½çµåï¼
çµå 1ï¼å®æ´ API æ¸¬è©¦å°æ¡
é©åï¼å»ºç«æ£å¼å°æ¡ç宿´æ¸¬è©¦å¥ä»¶
æè½çµåï¼
dotnet-testing-advanced-aspnet-integration-testingï¼åºç¤ï¼dotnet-testing-advanced-testcontainers-databaseï¼çå¯¦è³æåº«ï¼dotnet-testing-advanced-webapi-integration-testingï¼å®æ´æµç¨ï¼
å¸ç¿é åºï¼
- å å¸ aspnet-integration-testing çè§£åºç¤
- åå¸ testcontainers-database ææ¡è³æåº«æ¸¬è©¦
- æå¾å¸ webapi-integration-testing æ´åæç¨
é æææï¼
- è½çº Web API å°æ¡å»ºç«å®æ´æ¸¬è©¦
- 使ç¨çå¯¦è³æåº«é©èè¡çº
- æ¸¬è©¦ææ CRUD 端é»èé¯èª¤èç
çµå 2ï¼å¾®æåæ¸¬è©¦æ¹æ¡
é©åï¼å¾®æåæ¶æ§ã忣å¼ç³»çµ±
æè½çµåï¼
dotnet-testing-advanced-aspire-testingï¼æ ¸å¿ï¼dotnet-testing-advanced-testcontainers-databaseï¼è³æåº«ï¼dotnet-testing-advanced-testcontainers-nosqlï¼NoSQLï¼
å¸ç¿é åºï¼
- å å¸ testcontainersï¼è³æåº«æ¸¬è©¦åºç¤ï¼
- åå¸ aspire-testingï¼å¾®æå測試ï¼
é æææï¼
- 測試 .NET Aspire å°æ¡
- é©èæåééè¨
- 使ç¨å®¹å¨åç°å¢æ¸¬è©¦
çµå 3ï¼æ¡æ¶ç¾ä»£å
é©åï¼æ¸¬è©¦æ¡æ¶åç´æé·ç§»
é¸é Aï¼xUnit åç´
æè½ï¼
dotnet-testing-advanced-xunit-upgrade-guide
é©åï¼
- ç¾æå°æ¡ä½¿ç¨ xUnit 2.x
- æ³åç´å°ææ°çæ¬
é¸é Bï¼TUnit é·ç§»
æè½çµåï¼
dotnet-testing-advanced-tunit-fundamentalsï¼åºç¤ï¼dotnet-testing-advanced-tunit-advancedï¼é²éï¼
é©åï¼
- æ°å°æ¡é¸ææ¸¬è©¦æ¡æ¶
- èæ ®å¾ xUnit é·ç§»
å¸ç¿é åºï¼
- å å¸ fundamentals äºè§£åºç¤
- åå¸ advanced ææ¡é²éåè½
åç½®æè½è¦æ±
å¸ç¿é²éæè½åï¼å»ºè°å
ææ¡ä»¥ä¸åºç¤æè½ï¼ä¾èª dotnet-testing åºç¤æè½éï¼ï¼
å¿ åæè½
1. dotnet-testing-unit-test-fundamentals
çºä»éº¼å¿ é ï¼
- æ´å測試ä¹éµå¾ª 3A Pattern
- FIRST åå忍£é©ç¨
- éè¦ç解測試åºç¤æ¦å¿µ
2. dotnet-testing-xunit-project-setup
çºä»éº¼å¿ é ï¼
- éè¦å»ºç«æ¸¬è©¦å°æ¡
- çè§£å°æ¡çµæ§
- äºè§£å¥ä»¶ç®¡ç
3. dotnet-testing-awesome-assertions-guide
çºä»éº¼å¿ é ï¼
- æ´å測試éè¦é©è HTTP åæ
- FluentAssertions.Web æä¾å¼·å¤§ç API æ·è¨
- æå測試å¯è®æ§
æ¨è¦æè½
1. dotnet-testing-nsubstitute-mocking
çºä»éº¼æ¨è¦ï¼
- æ´å測試ä¸å¯è½éè¦ Mock å¤é¨æå
- WebApplicationFactory éè¦æ¿ææå
2. dotnet-testing-autofixture-basics
çºä»éº¼æ¨è¦ï¼
- å¿«éç¢çæ¸¬è©¦è³æ
- æ¸å°æ´åæ¸¬è©¦çæ¨£æ¿ç¨å¼ç¢¼
å¼å°å°è©±ç¯ä¾
以ä¸ç¯ä¾å±ç¤º AI å¦ä½èæ¨äºåï¼å¹«å©æ¨é¸ææ£ç¢ºçé²éæè½ã
ç¯ä¾ 1ï¼API æ¸¬è©¦éæ±
æ¨ï¼ææ³æ¸¬è©¦ Web API
AIï¼ææå婿¨å»ºç« Web API 測試ï¼è«å ç¢ºèªæ¨çæ¸¬è©¦éæ±ï¼
1. API è¤é度ï¼
- ç°¡å®ç APIï¼å¹¾å端é»ï¼
- ä¸å APIï¼å®æ´ç CRUDï¼
- è¤é APIï¼å¤å±¤æ¶æ§ãè¤éæ¥åé輯ï¼
2. è³æåº«éæ±ï¼
- ä¸éè¦è³æåº«
- è¨æ¶é«è³æåº«å³å¯
- éè¦çå¯¦è³æåº«
3. è³æåº«é¡åï¼å¦éè¦çå¯¦è³æåº«ï¼ï¼
- SQL Server / PostgreSQL / MySQL
- MongoDB / Redis / Elasticsearch
- å ©è 齿
è«åè¨´ææ¨çé¸æï¼æææ¨è¦é©åçæè½çµåã
æ¨ï¼ä¸å APIï¼éè¦ç實ç SQL Server è³æåº«
AIï¼å®ç¾ï¼æ ¹ææ¨çéæ±ï¼ææ¨è¦ä»¥ä¸æè½çµåï¼
ç¬¬ä¸æ¥ï¼å¸ç¿åºç¤æ´å測試ï¼1-2 天ï¼
dotnet-testing-advanced-aspnet-integration-testing
- çè§£ WebApplicationFactory
- å¸ç¿ HTTP 測試åºç¤
ç¬¬äºæ¥ï¼å å
¥çå¯¦è³æåº«ï¼2 天ï¼
dotnet-testing-advanced-testcontainers-database
- ä½¿ç¨ Testcontainers è¨å® SQL Server
- å¸ç¿è³æåº«æ¸¬è©¦éé¢
ç¬¬ä¸æ¥ï¼å®æ´æµç¨æ¸¬è©¦ï¼2-3 天ï¼
dotnet-testing-advanced-webapi-integration-testing
- 實ä½å®æ´ç CRUD 測試
- æ¸¬è©¦è³æç®¡ççç¥
- é¯èª¤èçé©è
é æææï¼ 宿徿¨å°è½å¤ çº API å°æ¡å»ºç«å®æ´çæ´å測試å¥ä»¶ï¼ä½¿ç¨ç實ç SQL Server è³æåº«é©èè¡çºã
éè¦æä½¿ç¨éäº skills å婿¨éå§åï¼
ç¯ä¾ 2ï¼å¾®æå測試
æ¨ï¼æçå°æ¡æ¯ .NET Aspire å¾®æåæ¶æ§ï¼è¦æéº¼æ¸¬è©¦ï¼
AIï¼.NET Aspire å¾®æå測試éè¦ç¹æ®çæ¹æ³ï¼ææ¨è¦ä½¿ç¨ dotnet-testing-advanced-aspire-testing skillã
å置確èªï¼
-
æ¨å·²å®è£ .NET Aspire Workloadï¼
- å¦ææ²æï¼
dotnet workload install aspire
- å¦ææ²æï¼
-
æ¨çå°æ¡æåªäºæåï¼
- API Service
- Worker Service
- å ¶ä»æå
-
æ¯å¦ä½¿ç¨è³æåº«ï¼
- 妿æï¼æåææé
dotnet-testing-advanced-testcontainers-database
- 妿æï¼æåææé
測試éé»ï¼
- DistributedApplication 測試
- æåééè¨é©è
- ä¾è³´æå管ç
- 端å°ç«¯æµç¨æ¸¬è©¦
éè¦æä½¿ç¨ dotnet-testing-advanced-aspire-testing skill å婿¨å»ºç«æ¸¬è©¦åï¼
ç¯ä¾ 3ï¼æ¡æ¶åç´
æ¨ï¼æçå°æ¡ä½¿ç¨ xUnit 2.9ï¼æè©²åç´å° 3.x åï¼
AIï¼éæ¯å好åé¡ï¼ææå婿¨è©ä¼°ãè®æå äºè§£æ¨çæ æ³ï¼
1. åç´åæ©ï¼
- éè¦ xUnit 3.x çæ°åè½
- 解決已ç¥åé¡
- åªæ¯æ³è·ä¸ææ°çæ¬
- å ¶ä»åå
2. å°æ¡è¦æ¨¡ï¼
- å°åï¼< 100 忏¬è©¦ï¼
- ä¸åï¼100-500 忏¬è©¦ï¼
- 大åï¼> 500 忏¬è©¦ï¼
3. åç´æç¨å£åï¼
- 䏿¥ï¼å¯ä»¥æ ¢æ ¢é·ç§»
- éè¦åå¿«å®æ
æ¨ï¼ä¸åå°æ¡ï¼ä¸»è¦æ¯æ³è·ä¸ææ°çæ¬ï¼ä¸æ¥
AIï¼äºè§£ï¼ææ¨è¦ä½¿ç¨ dotnet-testing-advanced-xunit-upgrade-guide skillã
åç´è¨åï¼
éæ®µ 1ï¼äºè§£å·®ç°ï¼1 天ï¼
- é±è®éå¤§è®æ´æ¸ å®
- äºè§£åªäºåè½åå½±é¿
- è©ä¼°é·ç§»å·¥ä½é
éæ®µ 2ï¼æºååç´ï¼å天ï¼
- å份ç®åç¨å¼ç¢¼
- æ´æ° .csproj å¥ä»¶çæ¬
- 檢æ¥ç·¨è¯é¯èª¤
éæ®µ 3ï¼èçç¸å®¹æ§ï¼1-2 天ï¼
- ä¿®æ£ç·¨è¯é¯èª¤
- èçå·è¡é段åé¡
- é©èæææ¸¬è©¦éé
總工æä¼°è¨ï¼2-3 天
風éªè©ä¼°ï¼ââ ä¸ä½ xUnit 3.x åç´é常å¾é å©ï¼å¤§é¨åè®æ´é½æåå¾ç¸å®¹ã
éè¦æä½¿ç¨ dotnet-testing-advanced-xunit-upgrade-guide skill å婿¨éå§åç´åï¼
ç¯ä¾ 4ï¼TUnit è©ä¼°
æ¨ï¼æè½èªª TUnit å¾ä¸é¯ï¼æè©²é·ç§»åï¼
AIï¼TUnit 確實æ¯å¾ææ½åçæ¸¬è©¦æ¡æ¶ï¼è®æå婿¨è©ä¼°ã
TUnit 主è¦åªå¢ï¼
- â¡ æ´å¥½çæè½ï¼å¹³è¡å·è¡åªå
- ð åçä¾è³´æ³¨å ¥ï¼ä¸éè¦é¡å¤è¨å®
- ð¯ ç¾ä»£å APIï¼æ´ç´è¦ºçè¨è¨
- ð§ éæ´»æ§ï¼æ´å¤èªè¨é¸é
è©ä¼°éé»ï¼
1. å°æ¡çæ³ï¼
- æ°å°æ¡ â å¯ä»¥èæ ®ç´æ¥ä½¿ç¨ TUnit
- ç¾æå°æ¡ â éè©ä¼°é·ç§»ææ¬
2. åéæè½ï¼
- åéå° xUnit çæåº¦
- å¸ç¿æ°æ¡æ¶çæé¡
3. é·ç§»ææ¬ï¼
- 測試æ¸é
- ç¹æ®æ¸¬è©¦æ¨¡å¼ï¼å¦ TheoryãClassFixture çï¼
æç建è°ï¼
å¦ææ¯æ°å°æ¡ï¼
ä½¿ç¨ dotnet-testing-advanced-tunit-fundamentals skill äºè§£ TUnitï¼èæ
®ç´æ¥æ¡ç¨ã
妿æ¯ç¾æå°æ¡ï¼
- å
ç¨
dotnet-testing-advanced-tunit-fundamentalsäºè§£åºç¤ - è©¦é©æ§é·ç§»ä¸åæ¸¬è©¦æªæ¡
- è©ä¼°å¯¦éé·ç§»å·¥ä½é
- æ±ºå®æ¯å¦å ¨é¢é·ç§»
éè¦æå婿¨è©ä¼°åï¼
èåºç¤æè½çéä¿
é²éæè½å»ºç«å¨åºç¤æè½ä¹ä¸ï¼
åºç¤æ¸¬è©¦è½å â dotnet-testingï¼åºç¤æè½éï¼
- å®å 測試åºç¤
- æ¸¬è©¦è³æçæ
- æ·è¨è模æ¬
- ç¹æ®å ´æ¯èç
â é²éæç¨
é²éæ´å測試 â dotnet-testing-advancedï¼æ¬æè½éï¼
- Web API æ´å測試
- 容å¨å測試
- å¾®æå測試
- æ¡æ¶åç´
å¸ç¿å»ºè°ï¼
å
宿 dotnet-testing åºç¤æè½éçæ ¸å¿æè½ï¼åé²å
¥æ¬é²éæè½éã
ç¸éè³æº
åå§è³æä¾æº
-
iThome éµäººè³½ç³»åæç« ï¼èæ´¾è»é«å·¥ç¨å¸«ç測試修練 – 30 å¤©ææ° ð 2025 iThome éµäººè³½ Software Development çµå è»
-
宿´ç¯ä¾ç¨å¼ç¢¼ï¼30Days_in_Testing_Samples å 嫿æç¯ä¾å°æ¡çå¯å·è¡ç¨å¼ç¢¼
æè¡éæ±
æ´å測試æè½ï¼
- .NET 8+
- Docker Desktop
- WSL2ï¼Windows ç°å¢ï¼
Aspire 測試æè½ï¼
- .NET 8+
- .NET Aspire Workload
- Docker Desktop
ä¸ä¸æ¥
é¸æç¬¦åæ¨éæ±çé²éæè½éå§å¸ç¿ï¼æåè¨´ææ¨çå ·é«æ æ³ï¼æææ¨è¦æé©åçå¸ç¿è·¯å¾ï¼
å¿«ééå§ï¼
- æ³æ¸¬è©¦ API â å¾
dotnet-testing-advanced-aspnet-integration-testingéå§ - éè¦çå¯¦è³æåº« â å¾
dotnet-testing-advanced-testcontainers-databaseéå§ - å¾®æåå°æ¡ â 使ç¨
dotnet-testing-advanced-aspire-testing - æ¡æ¶åç´ â 使ç¨å°æçåç´æå
- ä¸ç¢ºå® â åè¨´ææ¨çå°æ¡æ æ³ï¼ææå¹«æ¨åæ