所以我目前使用 IntelliJ(2017-3,如果这很重要),但在我当前的项目中,我需要测试具有特定输入(主要是文本操作)的单个方法,所以我记得从学校回来的 BlueJ,在那里你可以创建对象并运行无需编写任何额外代码的单一方法。所以,我想知道,是否有插件或其他解决方法可以在 IntelliJ 中为我提供该功能?
(使用 BlueJ 并行破坏了 IntelliJ 的项目,所以这不是一个可悲的选择)
我正在为一个函数编写一个测试,并且必须触发该函数的 .catch 部分,但是 Jasmine 的间谍由于某种原因不能这样做。测试方法:
foo(){
doStuff()
.catch((error) => {
//stuff I still have to test
bar()
})
Run Code Online (Sandbox Code Playgroud)
}
doStuff() 返回一个 Promise(因此是 .catch-Setup),但是对于这个测试,它应该抛出一个错误。
这是我的测试:
it('tests the error handling of foo',(done) =>{
spyOn(object,'foo').and.throwError('Test Error');
object.foo();
expect(object.bar).toHaveBeenCalled();
done();
Run Code Online (Sandbox Code Playgroud)
});
我接近这个的方式是错误的吗?这是茉莉花的错误吗?(谷歌没有找到任何东西)[我坚持(完成)设置,因为几乎所有其他测试都是异步的,我想保持这种风格]
[我无法更改要测试的代码]
标题已经说了,我应该使用那一个,在那里/拥有之间有什么区别
<table mat table [dataSource]="items" ...
Run Code Online (Sandbox Code Playgroud)
要么
<mat table [dataSource]="items" ...
Run Code Online (Sandbox Code Playgroud)
在我的HTML标记中?
粗略地看一下,它们都可以正常工作,但是我认为一定有区别...
编辑: 我专门谈论可调整大小的列,例如在此示例中:https ://stackblitz.com/edit/angular-rtfc5v?file=src%2Fapp%2Fapp.component.html
如果您切换
当我npm run test在命令行中输入时,npm 会转到package.json, 部分"scripts"并尝试在那里匹配"test"。
“test”后面的行如下:
"JASMINE_CONFIG_PATH=./spec/support/jasmine.json jasmine-run"
Run Code Online (Sandbox Code Playgroud)
但第一部分(除了 之外的所有内容jasmine-run)都可以毫无问题地删除(我有一个类似结构的项目,它可以工作,所以我可以测试这些修改)。
npm 在哪里寻找jasmine-run?
因为由于我有一个提供的脚本可以工作的项目,所以我可以查找它,但答案是:在node_modules旁边的文件夹中package.json是一个模块,在该package.json模块中,在以下"bin"部分中:
"jasmine-run": "tools/jasmine-run/jasmine-run.js",
Run Code Online (Sandbox Code Playgroud)
然而,这两个项目中都存在这种确切的设置,并且在一个项目中一切正常,而在另一个项目中则jasmine-run找不到。
所以我正在编写一个程序来检查 .txt 文件的每一行是否是回文,
import System.IO
main :: IO()
main = do {
content <- readFile "palindrom.txt";
print content;
print (lines content);
singleWord (head (lines content));
return ();
}
palindrom :: [Char] -> Bool
palindrom a = a == reverse a
singleWord :: [Char] -> IO()
singleWord a = do {
print (length a);
print (show (palindrom a));
}
Run Code Online (Sandbox Code Playgroud)
但是singleWord (head (lines content))我不需要singleWord遍历整个列表。
问题是,使用map或正常的列表理解,我总是会遇到大量不同的错误lines content(应该是一个字符串数组或 IO 字符串)显然总是我不想要的类型(我试过搞乱永远有类型声明,但它一直是错误的类型,或者是正确的类型,但在额外的数组层或其他任何地方)。
我的最后一次尝试是通过递归遍历数组,并使用以下额外代码:
walkthrough [] = []
walkthrough …Run Code Online (Sandbox Code Playgroud) 我想从字符串中只获取大写字母,并想知道字符串中的每个字母是否都包含在所有大写字母的列表中:
capsOnly = [ x| x<- string, (x elem ['A'..'Z'])]
Run Code Online (Sandbox Code Playgroud)
问题是显然Haskell没有认识到逗号背后的部分应该是x的条件,并且给了我:
* Couldn't match expected type `(a0 -> t0 a0 -> Bool)
-> [Char] -> Bool'
with actual type `Char'
* The function `x' is applied to two arguments,
but its type `Char' has none
In the expression: (x elem ['A' .. 'Z'])
In a stmt of a list comprehension: (x elem ['A' .. 'Z'])
Run Code Online (Sandbox Code Playgroud)
那么我该如何定义什么是Argument以及x来自哪个List?或者那是不可能的?
我知道你也可以这样做:
onlyCaps = [ x| x<- string, x < 'a']
Run Code Online (Sandbox Code Playgroud)
但我真的想知道我的第一种方法是否可行,以及如果是的话如何写它