【发布时间】: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