I'm in a situation where I'm writing unit test cases to test the code and i have come across a situation where I'm unable to create the object for PrivateObject as well as PrivateType. I searched a lot but nothing found helful. Finally asking question to seek help. I'm using MSFakes testing.
Below is my sample code:
public class A
{
//this class is not having default constructor and I can't modify the code as well.
public A(int id){
//some code
}
private void MethodPrivateA(int id){
//some code
}
private static void MethodPrivateStaticB(int id){
//some code
}
}
Now I want to test both of the methods.
If I write below code I'm getting below error at run time not compile time:
[TestClass]
Class TestA
{
[TestMethod]
public void CheckMethodATest()
{
//my some arrange data
//here I'm stuck to invoke the method as object is not created
PrivateObject obj = new PrivateObject(typeof(A)); //here at runtime throws error it does not found default constructor for the class A
obj.Invoke("MethodPrivateA", new Object[1]{1});
}
//my some assertion code
}
//Please ignore any typo error in the code in case if they exists as I have written code directly over here. It is more conceptual one.
Same happens for PrivateType as well. So how can I create object if class does not have default constructor? Thanks in advance.
Aucun commentaire:
Enregistrer un commentaire