【发布时间】:2021-10-31 18:20:28
【问题描述】:
我正在尝试编写单元测试,我已将我的应用程序设置复制到我的测试项目中,它包含我到 mongo db 的连接字符串,但是一旦我运行测试,我得到 System.ArgumentNullException:值不能为空。 (参数'connectionString'),
这是我的测试:
public Mock<IDataService> mock = new Mock<IDataService>();
[Fact]
void TestCase1()
{
var stocksTemp = new List<StockData>{
new StockData {
BaseCurrency = "EUR",
NumberOfShares = 150,
Ticker = "KINV"
}
};
var tt = new PortfolioData()
{
CurrentTotalValue = 200121,
Stocks = stocksTemp
};
var nn = new PortfolioData();
var result= mock.Setup(p => p.GetPortfolio("61377666d24fd78398a5a558")).ReturnsAsync(nn);
Assert.True(tt.Equals(result));
}
}
}
【问题讨论】:
-
DataService.GetPortfolio在内部做什么? -
DataService 是我编写代码以联系 db 并获取数据的地方
-
对,但是你能在你的帖子中分享那个代码吗?看看这个类是什么样子对我们很有帮助。
-
@MattU 更新了问题
-
这个测试到底应该做什么?专注于此。当您想编写单元测试时,为什么要查看连接字符串和 appSettings?您走错了路,您要编写的不是单元测试,而是不会帮助您编写更好的代码的东西。
标签: c# unit-testing asp.net-core