【问题标题】:nunit and web.config appSettingsnunit 和 web.config appSettings
【发布时间】:2017-10-19 19:28:13
【问题描述】:

我对测试真的很陌生,但我有一个想要测试的现有项目。 我已经这样设置了我的测试类:

[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 始终为空。 我尝试了很多东西,首先我引用了实际包含 web.config 文件的 Api 项目。 那没用。

然后我将现有项目作为链接添加到测试项目,但它仍然无法正常工作。

然后我在测试项目中创建了一个新的 web.config 文件,并在其中复制了应用程序设置,但仍然无法正常工作。

有人知道我需要做什么吗?

【问题讨论】:

  • 将web.config中的appSettings复制到测试项目的app.config中
  • 就是这样,您可以将其发布为答案以便我标记它吗?

标签: c# visual-studio unit-testing nunit


【解决方案1】:

您需要将web.config文件中的appSettings复制到测试项目的app.config中。

测试项目运行时,会从本地配置{app name}.config获取配置,部署/运行时app.config文件会转换成这个配置

【讨论】:

  • 如果不需要 web.config 中的所有 appsettings,在测试方法中添加以下内容也可以达到目的。 ConfigurationManager.AppSettings["settingsName"] = "settingsValue";
猜你喜欢
  • 2016-12-27
  • 2011-09-11
  • 1970-01-01
  • 2012-05-30
  • 2010-09-08
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多