我正在使用 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) 我正在尝试在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
我正在尝试使用纱线生成一个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) 我正在使用PowerMockito和Mockito来模拟几个静态类.我想获得在运行时调用特定模拟对象的次数,以便我可以在另一个模拟对象的验证时间中使用该计数.
我需要这个,因为我正在测试的方法启动一个线程并在一秒钟后停止线程.我的嘲笑在这1秒内被召唤好几次.调用第一个模拟后,可以调用代码分支和不同的模拟.所以,我想比较第一次模拟的计数和其他模拟的计数.
这是遗留代码.所以我无法对实际代码进行更改.我只能更改测试代码.
我在我的项目中使用GitLab.我正在探索合并请求功能.
topic_branch
从master
.topic_branch
.topic_branch
到远程.master
从中提取更改topic_branch
.master
所有提交并创建了一个合并提交,这看起来很复杂.我应该在分支上创建一个提交,然后创建合并请求.但仍然master
会有两个新的提交,一个来自分支,另一个是合并提交.我假设,如果我从命令行执行此操作,即
master
topic_branch
成master
master
在这种情况下,只有1个提交master
.如何从GitLab实现这一目标?
我试图在元素上定义模板变量并使用其隐藏属性来识别元素是否实际存在于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
但不返回值.
我想最终做的是使用resendEmailBtn
与editAccountBtn
在ngIf
的hr
决定显示了分频器.
解决这个问题的最佳方法是什么?我想避免处理组件代码.尝试用HTML解决这个问题.
我将 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
。
我在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) 我正在创建一个嵌套表单组,如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)
预期formErrors
和validationMessages
formErrors = {
'name': '',
'power': '',
'address': {
'state': '',
'city': ''
}
};
validationMessages = {
'name': {
'required': 'Name is required.',
'minlength': 'Name must be …
Run Code Online (Sandbox Code Playgroud) 我正在使用Typescript开发Angular 2项目.我希望能够使用select2,我没有看到任何稳定的功能丰富的插件等同于select2.但是我遇到types/select2
了DefinitelyTyped项目.我不确定如何在我的项目中使用它们.我也找不到其他DefinitelyTyped库的示例.我是TS和Angular 2的新手.有人能指出我应该如何使用它吗?
我知道我可以使用我的package.json包含库但不知道如何在组件中使用.
angular ×3
jhipster ×2
mockito ×2
spring ×2
spring-test ×2
typescript ×2
unit-testing ×2
cloudbees ×1
git ×1
gitlab ×1
go ×1
groovy ×1
h2 ×1
jenkins ×1
junit ×1
merge ×1
node.js ×1
powermock ×1
powermockito ×1
select2 ×1
spring-boot ×1
testify ×1
testng ×1
yarnpkg ×1
yo ×1