单元测试C#[TestInitialize]
本文关键字:TestInitialize 单元测试 | 更新日期: 2023-09-27 18:27:46
我正在对C#Web API控制器执行单元测试,每个控制器都需要几个参数才能初始化。目前,我在每个测试中都有以下代码,但它非常庞大。如何将此代码放入[TestInitialize]中,以便在每次测试之前运行?
我已经尝试了以下内容,但显然它超出了测试方法的范围。
[TestInitialize]
public void TestInitialize()
{
APIContext apicon = new APIContext();
xRepository xRep = new xRepository(apicon);
var controller = new relevantController(cRep);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
relevantFactoryModel update = new relevantFactoryModel();
}
您可以将所需的变量设置为测试类的字段,然后在TestInitialize方法中初始化它们。
class Tests
{
// these are needed on every test
APIContext apicon;
XRepository xRep;
Controller controller;
RelevantFactoryModel update;
[TestInitialize]
public void TestInitialize()
{
apicon = new APIContext();
xRep = new xRepository(apicon);
controller = new relevantController(cRep);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
update = new relevantFactoryModel();
}
}
通过这种方式,可以从每个测试访问字段