2017-05-19 38 views
1

私は本当にテストするのは新しいですが、テストしたい既存のプロジェクトがあります。 私はこのように私のテストクラスを設定している:nunitとweb.config appSettings

[TestFixture] 
public class PiiikProviderTest 
{ 
    public IList<GroupRequestModel> _groups; 
    public IPiiikProvider _pickProvider; 

    [OneTimeSetUp] 
    public void Setup() 
    { 
     var config = new PiiiCKConfig(); 
     var factory = new JsonFactory(); 
     var t = config.DocumentDbEnpointUrl; 
     var settingProvider = new SettingProvider(config); 

     _pickProvider = new PiiikProvider(settingProvider); 
     _groups = factory.Groups(); 
    } 

    [Test] 
    public void ScoreShouldBe130() 
    { 

     // Assemble 
     var products = new List<JObject>(); 
     var product = JObject.Parse("{'gtin': '8714574593609', 'model': 'EOS 6D', 'title': 'Canon EOS 6D Digital SLR Camera, HD 1080p, 20.2MP, GPS, 3\" LCD Screen, Body Only', 'shortTitle': 'Canon EOS 6D Black', 'image': 'http://piiick.blob.core.windows.net/images/Canon-EOS-6D-Black-8714574593609.png', 'weight': 'Heavy', 'size': 'Large', 'changableLens': 'Yes', 'action': 'No', 'sharing': 'Yes', 'mostlyManual': 'Yes', 'colour': 'Black', 'quality': 'Pro', 'type': 'DLSR', 'superzoom': 'No', 'video': 'HD', 'fastBurst': 'No', 'innovation': 'No', 'lowLight': 'Yes', 'brand': 'Canon', 'newestModels': 'No', 'focusTracking': 'No', 'wiFi': 'Yes', 'style': 'Traditional', 'categoryId': 1, 'id': '6cf8e9dd-4e7e-410e-b99e-c01005eb3f56'}"); 
     products.Add(product); 

     // Act 
     var response = _pickProvider.Score(_groups, products); 
     var result = int.Parse(response[0].SelectToken("importance").ToString()); 

     // Asset 
     Assert.That(result, Is.EqualTo(130)); 
    } 

    [OneTimeTearDown] 
    public void TearDown() 
    { 
     _groups = null; 
     _pickProvider = null; 
    } 
} 

問題があり、config.DocumentDbEnpointUrlは常にnullです。 私は多くのことを試しました。最初に、web.configファイルを実際に含むApiプロジェクトを参照しました。 それは動作しませんでした。

したがって、リンクという既存の項目をテストプロジェクトに追加しましたが、それでも機能しませんでした。

それで、私はテストプロジェクトで新しいweb.configファイルを作成し、まだ動作しなかったアプリケーション設定をコピーしました。

私は何をする必要があるか知っていますか?

+0

に変換されるもので、そのローカルコンフィギュレーション{app name}.configからその設定を取得するには、web.configファイルにからのappSettingsをコピーしますテストプロジェクトのapp.config – Nkosi

+0

それはそれでした、私はそれをマークすることができるように答えとして投稿できますか? – r3plica

答えて

1

あなたはテストプロジェクトのapp.configをのweb.configファイルからappSettingsをコピーする必要があります。

、テストプロジェクトを実行する場合、それはapp.configファイルが展開されたときに/実行

+0

web.config内のappsettingsがすべてではない場合は、テストメソッドで次の行を追加することで目的を指定することもできます。 'ConfigurationManager.AppSettings [" settingsName "] =" settingsValue "; ' – Sheetal

関連する問題