【发布时间】:2015-02-10 23:14:18
【问题描述】:
我必须为某些方法编写一个单元测试,并且我找到了一个返回 void 的方法:
public virtual void ReadCities(string filename)
{
var engine = new FileHelperEngine(typeof (GeoDbCity));
_geoDbCities = engine.ReadFile(filename) as GeoDbCity[];
}
而我的测试方法是:
[Test]
public void CheckIfCitiesWereRead()
{
var getGeoDbCitiesMock = new Moq.Mock<GeoDbReader>();
getGeoDbCitiesMock.Setup(y => y.ReadCities("ConstCities.csv"));
Assert.NotNull(getGeoDbCitiesMock.Object.ReadCities("ConstCities.csv"));
}
当调用 assert 时出现错误:
参数类型“void”不可分配给参数类型“object”。
我的问题是:
如何处理 void 类型的方法以及如何测试它们?在这种特殊情况下,如何测试 ReadCities 方法是否实际读取了某些内容?
【问题讨论】:
-
执行该方法,然后检查_geoDbCities
标签: c# unit-testing