测试用例

时间:2020-09-21 16:04:08

标签: java spring junit mockito

我在服务类中有转移方法,我想为此方法创建一个测试,以检查转移值是否有效。

我要测试的方法是这样:

public void transfer(Account destiny, double value) {
        Account origin = new Account();
        if (value<= origin.getBalance()) {
            this.withdraw(value);
            destiny.setDeposit(value);
        }
    }

我现在开始修补测试。感谢您的理解。

2 个答案:

答案 0 :(得分:1)

我首先建议您重构该方法。 您希望将其传递给方法,而不是在方法内部实例化/创建/查找原始帐户。 因此,您的新方法签名应如下所示

public void transfer(Account destiny, Account origin, double value) {
   ...
}

完成后,您的快乐路径测试用例应该看起来像这样

Account destiny = new Account();
destiny.setBalance(100); // Some way to set balance
Account origin = new Account();
origin.setBalance(75); // Some way to set balance

transfer(destiny,origin,25); //Call your method

assertEquals(origin.getBalance(), 50);
assertEquals(origin.getBalance(), 125);

您还可以在此处测试否定情况,即原始余额小于转账金额,因此不会发生转账,并且两个帐户的余额都不变。

答案 1 :(得分:0)

如何处理,请检查余额是否已更改

<?xml version="1.0" encoding="utf-8"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>1.0.51</version>
    <title>$title$</title>
    <authors>Nicky</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <license type="expression">MIT</license>
    <!--<projectUrl>http://project_url_here_or_delete_this_line/</projectUrl>
    <iconUrl>http://icon_url_here_or_delete_this_line/</iconUrl>-->
    <description>Test</description>
    <releaseNotes>test</releaseNotes>
    <copyright>$copyright$</copyright>
    <dependencies>
        <group targetFramework=".NETCoreApp3.1">
            <dependency id="AutoMapper.Extensions.Microsoft.DependencyInjection" version="7.0.0" exclude="Build,Analyzers" />
            <dependency id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" version="3.1.2" exclude="Build,Analyzers" />
            <dependency id="Microsoft.AspNetCore.Identity.UI" version="3.1.2" exclude="Build,Analyzers" />
            <dependency id="Microsoft.EntityFrameworkCore" version="3.1.2" exclude="Build,Analyzers" />
            <dependency id="Microsoft.EntityFrameworkCore.SqlServer" version="3.1.2" exclude="Build,Analyzers" />
            <dependency id="Microsoft.EntityFrameworkCore.Sqlite" version="3.1.2" exclude="Build,Analyzers" />
            <dependency id="Newtonsoft.Json" version="12.0.3" exclude="Build,Analyzers" />
        </group>
    </dependencies>
    <frameworkReferences>
        <group targetFramework=".NETCoreApp3.1">
            <frameworkReference name="Microsoft.AspNetCore.App" />
        </group>
    </frameworkReferences>
    <contentFiles>
        <!-- Include Assets as Content -->
        <files include="**/images/*.*" buildAction="EmbeddedResource" />
        <files include="cs/**/*.*" buildAction="Compile" />
        <files include="pp/**/*.*" buildAction="Compile" />
    </contentFiles>
  </metadata>

    <files>
        <!--<file src="contentFiles\**" target="contentFiles" />-->
        <file src="Entities\*.cs" target="contentFiles\cs\any\Entities" />
        <file src="Entities\*.pp" target="contentFiles\cs\any\Entities" />
    </files>
</package>
相关问题