我是单元测试的新手。我想测试一种为用户上传个人资料图片的方法。我想知道如何通过以下方法测试其他路径:
<readonly>
我正在使用模拟文件,但不知道如何检查文件的其他部分。在这种情况下,有人可以帮助我吗?
答案 0 :(得分:0)
最佳做法是在单元测试中不要使用if...else
。将单元测试分为两个:
您可能不想使用逻辑单元来测试单元测试。
答案 1 :(得分:0)
考虑首先提取一个接口,例如具有Resharper的IUser或类似的接口,也将获得以下示例代码。
public interface IUser {
string UserName { get; set; }
}
太好了,所以现在我们可以将变量user定义为IUser。
IUser user = GetUser();
现在,您需要更改User才能实现IUser,如果无法实现,则将您测试的代码牢固耦合到User。通常,请尝试避免使用具体类型和静态调用。这使您的代码难以测试!
如果您可以过渡到IUser,那么前进的道路就很容易。在测试项目中执行以下Nuget命令:
安装包最低订购量
现在,您可以嘲笑您的用户。
var userMock = new Mock<IUser>();
使用接口和模拟可以使您的代码更具可测试性,并且可以解决此代码覆盖情况。但是,如果User是具体类型,并且您不能将其更改为实现IUser,则必须为每个具体方案创建两个单元测试。
请相信以下声明: