4

这是我的第一个单元测试,希望得到一些帮助,以消除我对编写单元测试过程的想法。

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

Document doc = new Document();

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

我在构建时遇到的错误:

无法将类型隐式转换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();
    }
}
4

5 回答 5

12

您的方法没有返回值:

public void AddUser
       ^^^^ no return value

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

string name = doc.AddUser("Testing User");
^^^^^^^^^^^ AddUser has no return value
于 2013-03-12T14:19:39.270 回答
2

Make sure you return the name from from your AddUser(string newUserName) method.

Replace your method like

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;
}
于 2013-03-12T14:21:43.810 回答
0

简单地说,您不能将 void 分配给字符串。

要使其工作,您可以通过 2 种方式进行:制作您的方法AddUser return string类型或添加额外parameter的内容methodkeyword out用于此parameter

希望它有所帮助。

于 2013-03-12T14:27:36.563 回答
0

AddUser is written as a method, not a class. Your test attempts to call it like a method, but the method is void, which does not return a value.

于 2013-03-12T14:21:02.603 回答
0

AddUser不返回任何东西。

于 2013-03-12T14:19:10.063 回答