Überprüfen Sie den Wert des Referenzparameters mit MOQC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Überprüfen Sie den Wert des Referenzparameters mit MOQ

Post by Anonymous »

Ich bin gerade zu MOQ gewechselt und bin auf ein Problem gestoßen. Ich teste eine Methode, die eine neue Instanz eines Geschäftsobjekts erstellt, die Eigenschaften des Objekts von Benutzerneingabetwerten festlegt und eine Methode (SaveCustomercontact) aufruft, um das neue Objekt zu speichern. Das Geschäftsobjekt wird als Ref -Argument übergeben, da es eine Remoting -Schicht durchläuft. Ich muss prüfen, ob das Objekt an SaveCustomercontact über alle seine Eigenschaften wie erwartet übergeben wird. Da es jedoch in der Controller -Methode als neu instanziiert ist, kann ich dies nicht tun. < /P>

public void AddContact() {

var contact = new CustomerContact() { CustomerId = m_model.CustomerId };

contact.Name = m_model.CustomerContactName;
contact.PhoneNumber = m_model.PhoneNumber;
contact.FaxNumber = m_model.FaxNumber;
contact.Email = m_model.Email;
contact.ReceiveInvoiceFlag = m_model.ReceiveInvoiceFlag;
contact.ReceiveStatementFlag = m_model.ReceiveStatementFlag;
contact.ReceiveContractFlag = m_model.ReceiveContractFlag;
contact.EmailFlag = m_model.EmailFlag;
contact.FaxFlag = m_model.FaxFlag;
contact.PostalMailFlag = m_model.PostalMailFlag;
contact.CustomerLocationId = m_model.CustomerLocationId;

RemotingHandler.SaveCustomerContact( ref contact );
}
< /code>

Hier ist der Test: < /p>

[TestMethod()]
public void AddContactTest() {

int customerId = 0;

string name = "a";

var actual = new CustomerContact();

var expected = new CustomerContact() {
CustomerId = customerId,
Name = name
};

model.Setup( m => m.CustomerId ).Returns( customerId );
model.SetupProperty( m => model.CustomerContactName, name );
model.SetupProperty( m => m.PhoneNumber, string.Empty );
model.SetupProperty( m => m.FaxNumber, string.Empty );
model.SetupProperty( m => m.Email, string.Empty );
model.SetupProperty( m => m.ReceiveInvoiceFlag, false );
model.SetupProperty( m => m.ReceiveStatementFlag, false );
model.SetupProperty( m => m.ReceiveContractFlag, false );
model.SetupProperty( m => m.EmailFlag, false );
model.SetupProperty( m => m.FaxFlag, false );
model.SetupProperty( m => m.PostalMailFlag, false );
model.SetupProperty( m => m.CustomerLocationId, 0 );

remote
.Setup( r => r.SaveCustomerContact( ref actual ) )
.Callback( () => Assert.AreEqual( actual, expected ) );

target.AddContact();

}
< /code>

Dies ist nur die jüngste von vielen Versuchen, diesen Parameter zu übernehmen. Als Referenz ändert sich der Wert des tatsächlichen Zustands nicht von seinem anfänglichen (konstruierten) Zustand. Wenn ich das Setup anstelle des .callback hinzufügen kann und dann remote.Verify nach dem Ziel (oder, wie ich davon ausgehe, strikte das Schein streng) immer fehl, da der Parameter, den ich im Test bereitstelle, nicht die gleiche Instanz ist wie die in der Controller -Methode erstellt. Alle Ideen zum Testen würden geschätzt. Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post