过去几天我一直在玩SpecFlow.在那段时间里,我意识到我应该为这些系统编写质量规格.
有人能指出一些资源,其中包含有关为SpecFlow或类似工具创建质量规范的最佳实践吗?
有没有办法在IntelliJ中完全呈现HTML文件?我有一个简单的HTML文件,其中包含项目中的链接列表.当我查看文件时,我看到了这个:
<a href="http://address1">link 1</a>
<a href="http://address2">link 2</a>
<a href="http://address3">link 3</a>
Run Code Online (Sandbox Code Playgroud)
我想在IntelliJ中打开文件,让它显示呈现的HTML:
link 1
link 2
link 3
Run Code Online (Sandbox Code Playgroud)
这样我就可以避免在外部浏览器中启动它.
如果我在我的pom文件中有以下内容:
<properties>
<mySystemProperty>${mySystemProperty}</mySystemProperty>
</properties>
Run Code Online (Sandbox Code Playgroud)
当我使用"mvn clean install -DmySystemProperty = someData"构建时,它构建成功.如果我使用"mvn clean install"构建它,我不需要指定系统属性,Maven给了我这个错误:
Resolving expression: '${mySystemProperty}': Detected the following recursive expression cycle in 'mySystemProperty'
Run Code Online (Sandbox Code Playgroud)
有没有办法让maven忽略丢失的系统属性?如果没有,有没有办法默认它?
我有一些代码获取枚举的值:
StringUtils.isEmpty(getEnumMember().value());
Run Code Online (Sandbox Code Playgroud)
支持代码如下所示:
public CustomEnum getEnumMember() {
return enumMember;
}
----
public enum CustomEnum {
TEXT1("text1"),
TEXT2("text2"),
TEXT3("text3");
private final String value;
CustomEnum(String v) {
value = v;
}
public String value() {
return value;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道getEnumMember是否有办法以与处理null对象相同的方式处理空枚举.例如:
public CustomEnum getEnumMember() {
if (enumMember ==null) {
return new CustomEnum();
}
return enumMember;
}
Run Code Online (Sandbox Code Playgroud)
但我不能实例化一个"新的CustomEnum".你将如何处理这个,以便getEnumMember()不会返回null?我不想为"ENUM_IS_NULL("")"创建一个特殊的枚举值.
我有一个流程来处理来自REST服务的响应:
<http:outbound-endpoint method="GET"
address="http://www.SomeAddress.com"
exchange-pattern="request-response">
...
<response>
<json:json-to-object-transformer/>
<custom-transformer ... />
</response>
</http:outbound-endpoint>
Run Code Online (Sandbox Code Playgroud)
最近该服务已更新为返回html内容.我希望能够在响应中识别内容类型:
<http:outbound-endpoint method="GET"
address="http://www.SomeAddress.com"
exchange-pattern="request-response">
...
<response>
<choice>
<when content-type is html>
<custom-transformer-for-html ... />
</when>
<otherwise>
<json:json-to-object-transformer/>
<custom-transformer ... />
</otherwise>
</choice>
</response>
</http:outbound-endpoint>
Run Code Online (Sandbox Code Playgroud)
更好的是,如果内容类型无法识别,那么简单地抛出异常会很好,类似于传统的switch语句:
switch (content-type) {
case (html) : ...
case (json): ...
default: throw exception
}
Run Code Online (Sandbox Code Playgroud)
选择语句可以检查入站标题内容类型吗?交换机是否可以进行默认检查?有什么例子我可以看一下吗?
---更新---
我在下面尝试了戴维斯的建议:
<response>
<choice>
<when expression="#[message.inboundProperties['Content-Type'].contains('text/html')]">
<logger message="when number one invoked" level="WARN"/>
</when>
<when expression="#[message.inboundProperties['Content-Type'].contains('application/json')]">
<logger message="when number two invoked" level="WARN"/>
</when>
<otherwise>
<logger message="otherwise invoked" …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码将图像发布到服务器.
var image= Image.FromFile(@"C:\Image.jpg");
Task<string> upload = Upload(image);
upload.Wait();
public static async Task<string> Upload(Image image)
{
var uriBuilder = new UriBuilder
{
Host = "somewhere.net",
Path = "/path/",
Port = 443,
Scheme = "https",
Query = "process=false"
};
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("locale", "en_US");
client.DefaultRequestHeaders.Add("country", "US");
var content = ConvertToHttpContent(image);
content.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
using (var mpcontent = new MultipartFormDataContent("--myFakeDividerText--")
{
{content, "fakeImage", "myFakeImageName.jpg"}
}
)
{
using (
var message = await client.PostAsync(uriBuilder.Uri, mpcontent))
{
var input …Run Code Online (Sandbox Code Playgroud)