无法从另一个项目访问变量
Unable to access variables from another project
我正在尝试使用 c# (Restsharp) 自动执行 API 测试。我在同一个解决方案中有 2 个项目。一个项目是控制台应用程序,我试图在其中保留方法,而另一个项目是单元测试项目,我计划在其中保留测试用例。
我可以通过创建方法的对象来访问 BASE 项目中的方法,但无法访问该方法中的变量来应用断言。知道我错过了什么吗?
(我是 c# 的新手)。
基础项目
中的方法class
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;
}
}
}
测试项目
中的单元测试class
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 变量以及响应变量。
我已经在项目之间添加了依赖关系。
感谢帮助!!
解决该问题的一个方法是使 GetMethod return 状态代码:
public int GetMethod(long ID)
{
...
int nStatusCode = (int)statusCode;
return nStatusCode;
}
然后测试可以检查 return 值。
var c = methods.GetMethod(2330013)
Assert.AreEqual(200, c);
PS。我建议使用 Assert.AreEqual
而不是 Assert.IsTrue
,因为在代码不是 200 的情况下,测试失败输出将包含错误值。使用 IsTrue
你只会知道它不是 200,但你不会知道它是什么。
我正在尝试使用 c# (Restsharp) 自动执行 API 测试。我在同一个解决方案中有 2 个项目。一个项目是控制台应用程序,我试图在其中保留方法,而另一个项目是单元测试项目,我计划在其中保留测试用例。
我可以通过创建方法的对象来访问 BASE 项目中的方法,但无法访问该方法中的变量来应用断言。知道我错过了什么吗? (我是 c# 的新手)。
基础项目
中的方法classusing 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;
}
}
}
测试项目
中的单元测试classusing 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 变量以及响应变量。 我已经在项目之间添加了依赖关系。 感谢帮助!!
解决该问题的一个方法是使 GetMethod return 状态代码:
public int GetMethod(long ID)
{
...
int nStatusCode = (int)statusCode;
return nStatusCode;
}
然后测试可以检查 return 值。
var c = methods.GetMethod(2330013)
Assert.AreEqual(200, c);
PS。我建议使用 Assert.AreEqual
而不是 Assert.IsTrue
,因为在代码不是 200 的情况下,测试失败输出将包含错误值。使用 IsTrue
你只会知道它不是 200,但你不会知道它是什么。