私は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();
}
}
これにより、すべてのテストからフィールドにアクセスできます