4

これは私の最初の単体テストであり、単体テストを作成するプロセスについての私の考えを明確にするための助けが必要でした。

ライブラリクラスの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();
    }
}
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

メソッドからから名前を返すようにしてください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;
}
于 2013-03-12T14:21:43.810 に答える
0

簡単に言えば、文字列にvoidを割り当てることはできません。

それを機能させるには、2つの方法で行うことができます:メソッドAddUser return stringタイプを作成するか、メソッドタイプを追加parameterして、これmethodに使用keyword outしますparameter

お役に立てば幸いです。

于 2013-03-12T14:27:36.563 に答える
0

AddUser何も返しません。

于 2013-03-12T14:19:10.063 に答える
0

AddUserクラスではなく、メソッドとして記述されます。テストはメソッドのようにそれを呼び出そうとしますが、メソッドはvoidであり、値を返しません。

于 2013-03-12T14:21:02.603 に答える