Saya memiliki kelas ini dengan konstruktornya
public class BankAccount
{
public int Id { get; private set; }
public int BankAccountNo { get; private set; }
public decimal Balance { get; private set; }
public BankAccount(int BankAccountNo, decimal Balance)
{
this.BankAccountNo = BankAccountNo;
if(Balance <= 0)
{
throw new ArgumentException("Create bank account failed. Balance should be more than zero.");
}
this.Balance = Balance;
}
}
Saya telah membuat pengujian unit xunit untuk memeriksa kesetaraan objek
Tes Rekening Bank kelas publik { Rekening Bank swasta _Rekening Bank;
public BankAccountTest()
{
_bankAccount = new BankAccount();
}
[Theory, MemberData(nameof(BankAccountConstructorShouldPass_Data))]
public void BankAccountConstructorShouldPass(BankAccount account, BankAccount accountExpected)
{
// Act
_bankAccount = new BankAccount(account.BankAccountNo, account.Balance);
// Assert
Assert.Equal<BankAccount>(accountExpected,_bankAccount);
}
public static TheoryData<BankAccount, BankAccount> BankAccountConstructorShouldPass_Data()
{
return new TheoryData<BankAccount, BankAccount>
{
{
new BankAccount(123, 250.00M),
new BankAccount(123, 250.00M)
},
{
new BankAccount(321, 150.50M),
new BankAccount(321, 150.50M)
}
};
}
}
Saat saya menjalankan tes, gagal karena kesalahan
Assert.Equal() Failure
Expected: BankAccount { Balance = 250.00, BankAccountNo = 123, Id = 0 }
Actual: BankAccount { Balance = 250.00, BankAccountNo = 123, Id = 0 }
Saya mencoba dengan Assert.True(accountExpected.Equals(_bankAccount));
tetapi masih belum berhasil.
xunit compare two objects
. buildplease.com/pages/testing-deep-equalilty - person mjwills   schedule 16.06.2020accountExpected.Should().BeEquivalentTo(_bankAccount);
. Tapi, saya belum tahu bagaimana menyelesaikannya tanpa FluentAssertions. - person Steve   schedule 16.06.2020