所以这是我用swift的hello world应用程序。也不习惯XCode。所以,这里可能是一个愚蠢的错误。
我只有一个类Deck.swift
class Deck {
let decks : Integer = 0
init () {
decks = 1
}
init (amountOfDecks : Integer){
decks = amountOfDecks
}
func getAmountOfCards() -> Integer {
return 0
}
}
然后我尝试运行看起来像这样的单元测试
import XCTest
import helloWorldv2
class helloWorldv2Tests: XCTestCase {
override func setUp() {
super.setUp()
}
override func tearDown() {
super.tearDown()
}
func testDeckConstructor() {
var deck = Deck(amountOfDecks: 2)
XCTAssert(true, "Pass")
}
func testExample() {
// This is an example of a functional test case.
XCTAssert(true, "Pass")
}
}
如果我注释掉 var deck = Deck(amountOfDecks:2)这一行,那么它构建正常。如果包含该行,则构建失败。
任何人都知道我在这里做错了什么?
答案 0 :(得分:0)
如果你想修改deck param,你必须像这样声明它
var decks : Int = 0
如果你把你的变量只在第一次分配后才被读取。
答案 1 :(得分:0)
虽然@jaumard说你应该使用 var 而不是让是正确的,但你应该使用“Int”作为类型,而不是“整数” “(这是一种协议,而不是一种类型)。你侥幸成功,因为类型推断都是多余的......
var decks = 0
已足够,或
var decks: Int = 0
如果你想要冗长。
答案 2 :(得分:0)
无需将let
常量变为var
。
声明它时,根本不提供默认值。
let decks : Int
你的= 0
已初始化你的常量,而不是你试图在init中更改它,这是常量不允许的。