私はtdd開発の新機能として、初めてモックを試みましたが、同じことについては 疑問があります。TDDでテストするメソッドを呼び出すロジック
たとえば次の点を考慮
をここにビジネス
public class MyEmail
{
public bool SendEmail()
{
Email code goes here
return true;
}
}
Another class
public class Customer
{
public bool Addcustomer()
{
MyEmail obj = new MyEmail();
obj.SendEmail();
return true;
}
}
はここAddcustomerのための私のテストを行く
[TestMethod()]
public void AddCustomerTest()
{
Mock<Myemail> objemail = new Mock<Myemail>();
objemail.Setup(x=>x.SendEmail()).Returns(true);
customer obj = new Customer();
//私がテストしたい ので、顧客クラスの作成されたオブジェクトこのクラスに含まれるメトス。
今私の質問はここにありますか?
obj.AddCustomer(objemail.Object);
上記を確認してください。 Customerクラス のメソッドをパラメータとともに呼び出しましたが、実際にはそのメソッドはどのパラメータも受け入れません。しかし、そのメソッドはコンパイルエラー またはランタイムエラーを受け取っていません。どのように可能ですか?
テストメソッドでのみ起きているのは、 であるべきで、理想的にはコンパイラが受け入れるべきではないからです。
さらに、クラスCustomerの私のAddcustomerメソッドがすでに以下のような定義を持つ であるとします。それから私はどうすればいいですか?私は私が正しくあなたを理解している場合はわからない
public bool Addcustomer(int Anynumber)
{
MyEmail obj = new MyEmail();
obj.SendEmail(Anynumber));
return true;
}
Assert.AreEqual(obj.AddCustomer(), true);
}