我想創建的代碼的幾個街區的一些單元測試,但我不確定我應該是什麼樣的測試,單元測試是新的給我,我學會例子更好。這裏是有問題的代碼。諮詢測試
public static String buildAddressStreet(Address address)
{
if(address.getAddressLines().size() > 0)
{
return address.getAddressLines().get(0);
}
else
{
return StringUtils.EMPTY;
}
}
public static Collection<Payment> collectFraudPayments(WebOrder order)
{
return streamPaymentsFilterForFraud(order).collect(Collectors.toList());
}
private static Stream<Payment> streamPaymentsFilterForFraud(WebOrder order)
{
return order.getPayments().stream()
.filter(i -> i.getPayMethod().isCreditCard())
.filter(i -> (!StringUtils.startsWith(i.getFraudStatusCode(), "A") || FraudStatusCode.isPossibleFraud(i.getDecisionResponse())));
}
public static String getAddressLocation(Address address, int location)
{
if(location < 3)
{
if(address.getAddressLines().size() >= location+1)
{
return address.getAddressLines().get(location);
}
}
return null;
}
public static String getCommerceCustomerNumber(WebOrder order)
{
Customer customer = findCustomer(order);
if(customer != null)
{
return customer.getId();
}
else
{
return null;
}
}
public static String buildCustomerName(WebOrder order)
{
Optional<? extends Customer> foundCustomer = order.getItems().stream().findFirst().map(i -> i.getShipping());
if(!foundCustomer.isPresent())
{
foundCustomer = order.getPayments().stream().findFirst();
}
return buildCustomerName(foundCustomer.orElse(null));
}
public static String buildCustomerName(Customer customer)
{
StringBuilder sb = new StringBuilder();
if(customer != null)
{
if(StringUtils.isNotBlank(customer.getAddress().getFirstName()))
{
sb.append(customer.getAddress().getFirstName()).append(' ');
}
if(StringUtils.isNotBlank(customer.getAddress().getMiddleName()))
{
sb.append(customer.getAddress().getMiddleName()).append(' ');
}
if(StringUtils.isNotBlank(customer.getAddress().getLastName()))
{
sb.append(customer.getAddress().getLastName()).append(' ');
}
if(StringUtils.isNotBlank(customer.getAddress().getCompanyName()))
{
sb.append(customer.getAddress().getCompanyName()).append(' ');
}
}
return sb.toString().trim();
}
我理解,這是概率了很多,我不想爲我編寫的代碼只是一個想法或例子,說明如何進行測試。我已經寫過基本的測試,但其中一些讓我有點難過。由於
二是從有關單位測試前幾天答案:http://stackoverflow.com/questions/38081611/junit-writing-a-test-for-a-method-that-deletes-an-entity/38082803#38082803和http://stackoverflow.com/questions/37947075/how-to-testmock-object-that-uses-external-api-jama-software/37948445#37948445 – Compass