mvc アプリでルートをテストしています。次のコードがあります。
using System.Web.Routing;
using MvcContrib.TestHelper;
using NUnit.Framework;
using web;
using web.Controllers;
namespace tests.web.Routes
{
[TestFixture]
public class routeTests
{
[Test]
public void Route_POSURL_MapsToPOSIndex()
{
MvcApplication.RegisterRoutes(RouteTable.Routes);
"~/POS".ShouldMapTo<POSController>(x => x.Index());
}
[Test]
public void Route_POSGetItem_MapsToPOSGetItem()
{
MvcApplication.RegisterRoutes(RouteTable.Routes);
"~/POS/GetItem/12345".ShouldMapTo<POSController>(x => x.GetItem());
}
}
}
ただし、2 番目のテストは次のように失敗します。ルート名は一意である必要があります。
いずれかのテストを個別に実行すると、正常に実行されます。明らかに、NUnit はテスト全体でルーティング テーブルを共有しています。なんで?
RegisterRoutes 呼び出しを TestFixtureSetup メソッドに入れることができることはわかっていますが、これでは問題が解決されず、何が欠けているのか知りたいです。
何か足りないだけですか?この質問がネット上のどこにも見つからないのはなぜですか?
ありがとう!マット