Если вы используете современную версию Microsoft.VisualStudio.TestTools.UnitTesting
, вы можете использовать метод асинхронного теста, как вы делаете в своем вопросе.
Если вы хотите проверить, возвращает ли ваша функция Post ожидаемые данные, сделайте следующее:
[TestMethod()]
public async Task PostTestAsync()
{
var controller = new API_FIRM_LINKController();
// TODO: do some preparations, so you can expect a specific return value
IHttpActionResult expectedResult = ...
// call PostAsync and await for it to finish
Task taskPost = controller.PostAsync(API_FIRM_LINK, aPI_FIRM_LINK);
IHttpActionResult result = await taskPost;
// of course this can be done in one line:
IHttpActionResult result = await controller.PostAsync(API_FIRM_LINK, aPI_FIRM_LINK);
// compare whether result equals expectedResult
// for example: create a class that implements IComparer<IHttpActionResult>
IComparer<IHttpActionResult> comparer = new IHttpActionResultComparer();
Assert.IsTrue(comparer.Equals(expectedResult, result);
}
Если вы используете набор тестов, где вы не можете использовать асинхронные тесты:
[TestMethod()]
public void PostTest()
{
var controller = new API_FIRM_LINKController();
IHttpActionResult expectedResult = ...
// call PostAsync and wait for it to finish
Task taskPost = Task.Run(() => controller.PostAsync(API_FIRM_LINK, aPI_FIRM_LINK));
taskPost.Wait();
IHttpActionResult result = taskPost.Result;
// TODO: compare result with expected result
}