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

Mas*_*yah 4 c# asp.net-mvc unit-testing

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

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

Document doc = new Document();

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

我在构建时遇到的错误:

无法隐式转换voidstring

这是我的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();
    }
}
Run Code Online (Sandbox Code Playgroud)

mel*_*okb 12

您的方法没有返回值:

public void AddUser
       ^^^^ no return value
Run Code Online (Sandbox Code Playgroud)

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

string name = doc.AddUser("Testing User");
^^^^^^^^^^^ AddUser has no return value
Run Code Online (Sandbox Code Playgroud)


小智 2

确保从您的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;
}
Run Code Online (Sandbox Code Playgroud)