我正在嘗試使用 c# (Restsharp) 自動化 API 測驗。我在同一個解決方案中有 2 個專案。一個專案是一個控制臺應用程式,我試圖在其中保留方法,而另一個專案是一個單元測驗專案,我計劃在其中保留測驗用例。
我可以通過創建方法的物件來訪問 BASE 專案中的方法,但無法訪問該方法中的變數以應用斷言。知道我錯過了什么嗎?(我是 C# 新手)。
Base 專案中的方法類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
namespace Base
{
public class Methods
{
public void GetMethod(long ID)
{
var client = new RestClient("getUrl");
var request = new RestRequest(Method.GET);
request.AddParameter("userId", ID);
IRestResponse response = client.Execute(request);
HttpStatusCode statusCode = response.StatusCode;
int nStatusCode = (int)statusCode;
}
}
}
測驗專案中的 UnitTest 類
using System;
using System.Net;
using Base;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using RestSharp;
namespace Tests
{
[TestClass]
public class UnitTests
{
[TestMethod]
public void StatusOK()
{
//Arrange, Act, Assert
var methods = new Methods();
methods.GetMethod(2330013)
Assert.IsTrue(nStatusCode.Equals(200));
}
}
}
UnitTest 無法讀取 nStatusCode 變數以及回應變數。我已經在專案之間添加了依賴關系。感謝幫助!
uj5u.com熱心網友回復:
解決該問題的一種方法是讓 GetMethod 回傳狀態碼:
public int GetMethod(long ID)
{
...
int nStatusCode = (int)statusCode;
return nStatusCode;
}
然后測驗可以檢查回傳值。
var c = methods.GetMethod(2330013)
Assert.AreEqual(200, c);
PS。我建議使用Assert.AreEqual代替,Assert.IsTrue因為在代碼不是 200 的情況下,測驗失敗輸出將包含錯誤值。IsTrue你只會知道它不是200,但你不會知道它是什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/436662.html
上一篇:處理特定長度的字串
下一篇:角度單元測驗:可觀察的不回傳結果
