首先,这是一个 Microsoft Store winrt库,我正在尝试使用此签名测试公共方法:
string GetStringFromFile(StorageFile storageFile);
但是StorageFile
没有构造函数,所以我无法在我的NUnit测试代码上创建它。另外,我想我不能在WinRt上使用Moq
或任何其他Mocking库。
我一直在寻找从IStorageFile接口创建一个手工制作的假,但它里面有很多方法,我再次强调了另一个深层属性指出了没有公共构造函数的StorageFile
内的clases例如ImageProperties
。
那么......使用StorageFile
和/或ImageProperties
类测试方法的最佳方法是什么?
答案 0 :(得分:4)
StorageFile
类实现了一个接口IStorageFile所以你应该改变你的依赖关系,然后你可以使用一个模拟或存根(如果你不能使用Moq等,可能是你创建的一个类)
答案 1 :(得分:0)
假设这个方法是你的一个,而不是另一个你无法控制的库中的东西;我会更改签名,因此参数是IStorageFile类型而不是具体类。然后,您可以为测试创建它,但在应用程序中使用真正的StorageFile。