繁体   English   中英

如何在Visual Studio中编写C#单元测试?

[英]How to write a C# unit test in Visual Studio?

这是我的第一次单元测试,想要一些帮助清除我对编写单元测试过程的看法。

我想编写一个测试方法来添加一个新用户 - 在我的库类中使用我的AddUser方法。

Document doc = new Document();

[TestMethod]
public string AddUser()
{
    string name = doc.AddUser("Testing User");
    Assert.IsNotNull(name);
}

我在构建时遇到的错误:

无法将类型void隐式转换为string

这是我的AddUser方法:

public void AddUser(string newUserName)
{
    using (var db = new DataContext())
    {
        User user = new User()
        {
            FullName = newUserName,
            ID = Guid.NewGuid()
        };

        db.Users.InsertOnSubmit(user);
        db.SubmitChanges();
    }
}

您的方法没有返回值:

public void AddUser
       ^^^^ no return value

所以你不能把它存储到一个字符串中:

string name = doc.AddUser("Testing User");
^^^^^^^^^^^ AddUser has no return value

确保从AddUser(string newUserName)方法返回名称。

替换你的方法就像

public String AddUser(string newUserName)
{
    using (var db = new DataContext())
    {
        User user = new User()
        {
            FullName = newUserName,
            ID = Guid.NewGuid()
        };
        db.Users.InsertOnSubmit(user);
        db.SubmitChanges();
    }
    return newUserName;
}

AddUser不返回任何内容。

AddUser是作为方法编写的,而不是类。 您的测试尝试将其称为方法,但该方法为void,它不返回值。

简单来说,你不能将void分配给字符串。

要使其工作,您可以通过两种方式执行:使您的方法AddUser return string类型或向method添加额外parameter ,并为此parameter使用keyword out

希望它有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM