Web API プロジェクトのさまざまなエンティティをテストするための specflow .feature ファイルがいくつかあります。
すべてのエンティティについて、データベースに必要なすべてのデータを含むバックグラウンドを作成する必要がありますが、その前にすべてのデータを削除する必要があり、(SQL クエリではなく) Web API 呼び出しを使用して削除する必要があります。私はこれをやっています:
Background:
Given I make a new request to localhost on port 53364
And the path is api/voipport/deleteAll
And the request type is Delete
When the request has completed
Given I make a new request to localhost on port 53364
And the path is api/loopblockingexception/deleteAll
And the request type is Delete
When the request has completed
Given I make a new request to localhost on port 53364
And the path is api/stimulationcode/deleteAll
And the request type is Delete
When the request has completed
Given I make a new request to localhost on port 53364
And the path is api/switch/deleteAllMtp3
And the request type is Delete
When the request has completed
Given I make a new request to localhost on port 53364
And the path is api/enviroment/deleteAll
And the request type is Delete
When the request has completed
Given it has the following topologies
| Id | Name | Description |
| 1 | Test | Description |
| 2 | Test2 | Descritpion2 |
Given it has the following eas
| Id | TopologyId | Name | Description | SipListenIPAddress | SipListenPort | SipTelephonyCapacity |
| 1 | 1 | Test | Description1 | 127.0.0.1 | 8080 | 5 |
Given it has the following networks
| Id | TopologyId | NetworkTypeId | Name | CliPrivacyRespected |
| 1 | 1 | 2 | Test1 | Description1 |
| 2 | 1 | 1 | Test2 | Description2 |
Given it has the following switchs
| Id | NetworkId | SwitchType | Name | Description |
| 1 | 1 | 2 | Ss7SwitchTest | Ss7SwitchTestDescription |
| 2 | 1 | 1 | SipSwitchTest | SipSwitchTestDescription |
Given it has the following mtp3Switchs
| Id | Name | Description | SignallingHost | SignallingLinkCode | SwitchId | EasId |
| 1 | SwitchMtp3Test | SwitchMtp3DescriptionTest | 192.168.1.1 | 13245 | 1 | 1 |
| 2 | SwitchMtp3Test2 | SwitchMtp3DescriptionTest2 | 192.168.1.2 | 13246 | 1 | 1 |
完璧に動作しますが、同じ deleteAll メソッドを実行する必要がある .feature ファイルがいくつかあります。他の .feature ファイル (または別の種類のファイル) ですべての Given/When 命令を使用して任意の種類のメソッドを作成し、すべてのバックグラウンド コードからこのメソッドを呼び出すことはできますか?