小编Tec*_*nch的帖子

如何在golang的for循环中模拟相同的输入和不同的返回值

我正在使用 go lang testing 在 for 循环中运行具有多个参数的测试。

我遇到了每次调用模拟时都返回相同返回值(和第一组)的情况。我希望能够做的是在输入相同时更改每个测试的返回值,即在循环中相同On但不同Return

我正在使用拉伸器/作证进行模拟。看起来它不会在相同时覆盖已经创建的模拟On

func TestUpdateContactWithNewActions(t *testing.T) {
    tests := []struct {
        testName  string
        getParams func() *activities.UpdateContactWithNewActionsActivity
        mockError error
    }{

        {"UpdateContactWithNewActions with error from contact service",
            func() *activities.UpdateContactWithNewActionsActivity {
                return fixtures.GetUpdateContactWithNewActionsActivity()
            }, fixtures.Err},
        {"UpdateContactWithNewActions valid",
            func() *activities.UpdateContactWithNewActionsActivity {
                return fixtures.GetUpdateContactWithNewActionsActivity()
            }, nil},
    }

    lib.LoadWithMockClients()

    for _, test := range tests {
        test := test
        t.Run(test.testName, func(t *testing.T) {
            lib.MockCSClient.On(
                "UpdateContactWithNewActions",
                mock.AnythingOfType("tchannel.headerCtx"),
                fixtures.UpdateContactWithNewActions).Return(test.mockError)

            returnedResult, err := test.getParams().Execute(fixtures.Ctx)
            if test.mockError == …
Run Code Online (Sandbox Code Playgroud)

unit-testing go testify

19
推荐指数
2
解决办法
7775
查看次数

如何在Jenkins Workflow中重复一个阶段

我正在尝试在Cloudbees上使用Jenkins来自动部署我的软件.我设置我的工作流程如下.

詹金斯工作流程

有时候我想重新部署.(假设该阶段采用手动输入参数).我如何在工作流程中这样做?这是我的Groovy脚本.

def src = 'https://git.repo.url/proj.git'

stage 'Build'
node {
    env.JAVA_HOME="${tool name: 'Pre-Installed OpenJDK 8 (Latest) on DEV@Cloud nodes', type: 'hudson.model.JDK'}"
    sh 'javac -version'
    git credentialsId: 'abcdef', url: src
    sh 'ant -f build.xml proj.jar report'
}

stage 'Generate Release Version'
input message: 'Create Tar and Push to S3', ok: 'Generate Release'
node {
    // TODO
}

stage 'QA Approved'
input message: 'Enter a Tag Name to approve this build and tag in GIT', ok: 'Approve and Tag', parameters: [[$class: 'StringParameterDefinition', …
Run Code Online (Sandbox Code Playgroud)

groovy continuous-deployment jenkins cloudbees jenkins-workflow

9
推荐指数
1
解决办法
8439
查看次数

在纱线全球添加generator-jhipster之后,你找不到jhipster

我正在尝试使用纱线生成一个jHipster项目 - https://jhipster.github.io/installation/

我从其网站安装了Node,并使用brew安装了yarn.

纱线版本0.19.1节点版本v7.5.0 OSX Sierra 10.12.3

当我运行时yarn global add generator-jhipster,我可以看到jhispter生成器被复制到/Users/{username}/.config/yarn/global/node_modules/

my-mac:~ user$ yarn global add generator-jhipster
yarn global v0.19.1
warning No license field
[1/4]   Resolving packages...
[2/4]   Fetching packages...
[3/4]   Linking dependencies...
[4/4]   Building fresh packages...
warning undefined has no binaries
warning No license field
?  Done in 30.68s.
Run Code Online (Sandbox Code Playgroud)

下一步,当我跑yo jhipster,它找不到jhipster.但是,当我跑步时yarn add generator-jhipster,你可以从当前文件夹中找到jhipster.不确定添加全球位置有什么问题.

my-mac:~ user$ echo $PATH
/usr/local/sbin:~/.composer/vendor/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/Cellar/node/7.5.0/bin:/Users/{user}/.config/yarn/global/node_modules/.bin
Run Code Online (Sandbox Code Playgroud)

我们将不胜感激,以确定最新的纱线版本是否存在任何问题.

my-mac:~ user$ yo jhipster
Error jhipster

You don’t seem to have a generator …
Run Code Online (Sandbox Code Playgroud)

node.js jhipster yo yarnpkg

9
推荐指数
1
解决办法
5912
查看次数

如何获得Mockito中调用模拟的次数

我正在使用PowerMockito和Mockito来模拟几个静态类.我想获得在运行时调用特定模拟对象的次数,以便我可以在另一个模拟对象的验证时间中使用该计数.

我需要这个,因为我正在测试的方法启动一个线程并在一秒钟后停止线程.我的嘲笑在这1秒内被召唤好几次.调用第一个模拟后,可以调用代码分支和不同的模拟.所以,我想比较第一次模拟的计数和其他模拟的计数.

这是遗留代码.所以我无法对实际代码进行更改.我只能更改测试代码.

junit unit-testing mockito powermock powermockito

8
推荐指数
1
解决办法
3229
查看次数

如何防止Gitlab在分支合并上创建额外的合并提交

我在我的项目中使用GitLab.我正在探索合并请求功能.

  1. 我创建了一个topic_branchmaster.
  2. 做了一堆提交topic_branch.
  3. topic_branch到远程.
  4. 创建合并请求以master从中提取更改topic_branch.
  5. 在Gitlab中接受合并,撤消master所有提交并创建了一个合并提交,这看起来很复杂.

我应该在分支上创建一个提交,然后创建合并请求.但仍然master会有两个新的提交,一个来自分支,另一个是合并提交.我假设,如果我从命令行执行此操作,即

  1. 查看 master
  2. 合并topic_branchmaster
  3. commit/push master 在这种情况下,只有1个提交master.

如何从GitLab实现这一目标?

git version-control merge gitlab

8
推荐指数
2
解决办法
6249
查看次数

如何在ngIf中访问Angular 2模板变量

我试图在元素上定义模板变量并使用其隐藏属性来识别元素是否实际存在于DOM中,然后基于该元素显示另一个元素.但是如果有结构指令,模板变量似乎不会返回值.

<hr class="divider" *ngIf="true" #divi>
<div *ngIf="showResendWelcomeEmailButton">
  <a *wpHasAnyPermission="[{'something': true}]" 
     #resendEmailBtn>
    Resend Welcome Email
  </a>
</div>
<div class="pull-right">
  <a #editAccountBtn>Edit Account Details</a>
</div>

rbtn: {{resendEmailBtn?.hidden}}
ebtn: {{editAccountBtn?.hidden}}
dline: {{divi?.hidden}}
Run Code Online (Sandbox Code Playgroud)

输出是

rbtn:
ebtn: false
dline: 
Run Code Online (Sandbox Code Playgroud)

您可以在包含属性的元素上看到两个模板变量ngIf,wpHasAnyPermission但不返回值.

我想最终做的是使用resendEmailBtneditAccountBtnngIfhr决定显示了分频器.

解决这个问题的最佳方法是什么?我想避免处理组件代码.尝试用HTML解决这个问题.

angular-template angular-directive angular

7
推荐指数
1
解决办法
3401
查看次数

如何将 Spring WithMockUser 注释与 TestNG 结合使用

我将 Spring Boot 用于我的 Web 应用程序,并使用 TestNG 进行单元测试。以下是我正在尝试的单元测试

@ContextConfiguration
public class AuthorizerTest extends AbstractTestNGSpringContextTests {

    @InjectMocks
    private Authorizer authorizer = new Authorizer();

    @Mock
    private PermissionRuleRepository permissionRuleRepository;

    @BeforeMethod
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    @WithMockUser
    public void testCheckPermission() throws Exception {
        try {
            authorizer.checkPermission(null, PermissionLevel.Type.ACCOUNT_OTHER);
            fail();
        } catch (AccessDeniedException ade) {
            //
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

authorizer.checkPermission内部使用SecurityContext来获取当前用户名。但在调试时,authentication对象是null. 不知道为什么使用时它没有被填充WithMockUser

testng spring spring-test mockito springmockito

6
推荐指数
1
解决办法
408
查看次数

如何在Spring Integration测试之间删除内存中的h2db?

我在Spring Web应用程序中使用Liquibase.我有一堆实体,在用户,帐户,发票,许可证等每个实体的集成测试中都有数百个REST API测试.我的所有集成测试在按类运行时都会通过,但是当它们一起运行时很多都会失败gradle test.测试之间很可能存在数据冲突,我现在不想花时间修复清理数据.我更喜欢在每节课后放弃数据库和上下文.我想我可以@DirtiesContext在课堂上使用,所以我用它进行了测试注释.

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class, SecurityConfiguration.class},
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DirtiesContext
public class InvoiceResourceIntTest {
Run Code Online (Sandbox Code Playgroud)

我看到在添加注释之后,Web应用程序上下文会针对每个类启动,但是当Liquibase初始化发生时,查询不会运行,因为校验和匹配.由于这是一个内存中的数据库,我期望数据库与spring上下文一起被销毁,但它没有发生.

我也设置了jpa hibernate ddl-auto,create-drop但这没有帮助.我正在考虑的下一个选项是,而不是mem将h2db写入文件,并在我的集成测试类文件的@BeforeClass中删除该文件.我更喜欢在内存中自动删除db而不是在测试中管理它,但是想在这里尝试作为最后一个选项.谢谢您的帮助.

更新:

我更新了测试如下.

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class, SecurityConfiguration.class},
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
    properties = "spring.datasource.name=AccountResource")
@DirtiesContext
public class AccountResourceIntTest {
Run Code Online (Sandbox Code Playgroud)

我为每个集成测试设置了唯一的名称.我仍然没有看到数据库是新的,因为我只能在日志中看到Liquibase校验和.

这是app.yml的app配置

spring:
    datasource:
        driver-class-name: org.h2.Driver
        url: jdbc:h2:mem:myApp;DB_CLOSE_DELAY=-1
        name:
        username:
        password:
    jpa:
        database-platform: com.neustar.registry.le.domain.util.FixedH2Dialect
        database: H2
        open-in-view: false
        show_sql: true
        hibernate:
            ddl-auto: create-drop
            naming-strategy: org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy
        properties:
            hibernate.cache.use_second_level_cache: false
            hibernate.cache.use_query_cache: false
            hibernate.generate_statistics: true
            hibernate.hbm2ddl.auto: …
Run Code Online (Sandbox Code Playgroud)

spring h2 spring-test spring-boot jhipster

5
推荐指数
2
解决办法
3182
查看次数

如何使用嵌套表单组验证活动表单?

我正在创建一个嵌套表单组,如https://plnkr.co/edit/c93yFe2r83cvjiRvl6Uj?p=preview所示.

这是来自https://angular.io/docs/ts/latest/cookbook/form-validation.html#!#reactive的示例分支

Angular中的示例显示validationMessages在表单没有任何嵌套组时使用.当我有嵌套表单组时,我不确定如何扩展它.以下是我要创建的示例表单和验证消息.

  buildForm(): void {
    this.heroForm = this.fb.group({
      'name': [this.hero.name, [
          Validators.required,
          Validators.minLength(4),
          Validators.maxLength(24),
          forbiddenNameValidator(/bob/i)
        ]
      ],
      'address': this.fb.group({
        'city': [''],
        'state': ['']
      }),
      'alterEgo': [this.hero.alterEgo],
      'power':    [this.hero.power, Validators.required]
    });

    this.heroForm.valueChanges
      .subscribe(data => this.onValueChanged(data));

    this.onValueChanged(); // (re)set validation messages now
  }
Run Code Online (Sandbox Code Playgroud)

预期formErrorsvalidationMessages

  formErrors = {
    'name': '',
    'power': '',
    'address': {
      'state': '',
      'city': ''
    }
  };

  validationMessages = {
    'name': {
      'required':      'Name is required.',
      'minlength':     'Name must be …
Run Code Online (Sandbox Code Playgroud)

typescript angular2-forms reactive-forms angular

5
推荐指数
1
解决办法
2351
查看次数

如何在Angular 2项目中使用types/select2?

我正在使用Typescript开发Angular 2项目.我希望能够使用select2,我没有看到任何稳定的功能丰富的插件等同于select2.但是我遇到types/select2DefinitelyTyped项目.我不确定如何在我的项目中使用它们.我也找不到其他DefinitelyTyped库的示例.我是TS和Angular 2的新手.有人能指出我应该如何使用它吗?

我知道我可以使用我的package.json包含库但不知道如何在组件中使用.

jquery-select2 typescript definitelytyped select2 angular

5
推荐指数
1
解决办法
3393
查看次数